Pl2 CORRIG 3.DOC/fr
Jump to navigation
Jump to search
-------------------------
CORRECTIONS des EXERCICES
sur les LineAs
-------------------------
1) Exercice nr°1:
--------------
Voilà le listing du corrigé.
Je pense que cet exercice ne vous a pas posé beaucoup de problèmes ,
regardez attentivement ce listing, il ne comporte aucune difficulté.
TEXT
INCLUDE "LINEQU.L" ;les EQUs
INCLUDE "INIT_TOS.L" ;Setblock
INCLUDE "MACROS.L" ;Les macros
SETBLOCK ;Initialisation
;On recherche l'adresse du Tableau interne pour les LineAs
DC.W $A000 ;retour dans a0 de l'adresse
;du tableau interne
;On dépose les adresses des tableaux du VDI dans le tableau interne
move.l #CONTROL,ticontrol(a0)
move.l #INTIN,tiintin(a0)
move.l #PTSIN,tiptsin(a0)
move.l #INTOUT,tiintout(a0)
move.l #PTSOUT,tiptsout(a0)
PRINTLINE SOURIS ;texte
WAIT ;attente
lea INTIN,a6 ;adresse de INTIN dans a6
move #0,6(a6) ;0 dans intin+6 (couleur du
;masque)
move #1,8(a6) ;1 dans intin+8 (couleur du
;premier plan)
lea DONNEES,a5 ;adresse de 'DONNEES' dans a5
move #31,d0 ;31 dans d0
adda.l #10,a6 ;incrémente a6 de 10 unités:
;a6 pointe donc sur intin+10
BOUCLE move (a5)+,(a6)+ ;on dépose les données dans
;le tableau INTIN pointé par
;a6
dbf d0,BOUCLE ;on boucle 32 fois pour les
;32 données (16 mots pour le
;masque et 16 mots pour le
;premier plan)
DC.W $A00B ;TRANSFORM MOUSE
move #0,intin ;compteur=0
DC.W $A009 ;SHOW MOUSE
PRINTLINE MESSAGE ;texte
WAIT ;attente
TERM ;fin
DATA
SOURIS DC.B 27,'E','Je change la forme du curseur de la'
DC.B ' souris ...',0
MESSAGE DC.B 27,'E','Bougez la SOURIS SVP ...',7,0
DONNEES DC.W %0000001110000000 ;les 16 données (MOTS)
DC.W %0000011111000000 ;du MASQUE
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000111111100000
DC.W %0000011111000000
DC.W %0000001110000000
DC.W %0000011111000000
DC.W %0000111111100000
DC.W %0000011111000000
DC.W %0000001110000000
DC.W %0000000000000000 ;les 16 données (MOTS)
DC.W %0000001110000000 ;du PREMIER PLAN
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000011111000000
DC.W %0000001110000000
DC.W %0000000000000000
DC.W %0000001110000000
DC.W %0000011111000000
DC.W %0000001110000000
DC.W %0000000000000000
BSS
INCLUDE "TABLEAU.L" ;le tableau du VDI
END
2) Exercice nr°2:
--------------
Là encore, aucune difficulté majeure...
Il fallait juste faire attention à bien utiliser des coordonnées
graphiques qui correspondent à la résolution utilisée.
(OX)=640 de 0 à 339
(OY)=200 de 0 à 199 (MOYENNE résolution)
TEXT
INCLUDE "LINEQU.L" ;les EQUs
INCLUDE "INIT_TOS.L" ;Setblock
INCLUDE "MACROS.L" ;Les macros
SETBLOCK ;initialisation
DC.W $A000 ;on demande l'adresse du T.I. et
movea.l a0,a5 ;on la pose dans a5 car a0 risque
;d'ètre modifié par nos MACROS...
; On dépose les adresses des tableaux du VDI
move.l #CONTROL,ticontrol(a0)
move.l #INTIN,tiintin(a0)
move.l #PTSIN,tiptsin(a0)
move.l #INTOUT,tiintout(a0)
move.l #PTSOUT,tiptsout(a0)
PRINTLINE CADRE ;texte
WAIT ;attente
DC.W $A00A ;HIDE MOUSE
CCONOUT #27 ;ESC
CCONOUT #'E' ;+ 'E' = efface l'écran
move #1,_fg_bp_1(a5)
move #1,_fg_bp_2(a5) ;couleur=%11=3
move #0,_wrt_mode(a5) ;Write mode AND
move #1,_patmsk(a5) ;1+1=2 données pour le PAT
move.l #LIGNE,_patptr(a5) ;en 'LIGNE' se trouve
;le nouveau PAT
move #%1111111111111111,_ln_mask(a5) ;ligne PLEINE
move #0,d5 ;0 dans d5
move #22,d6 ;22 dans d6
BOUCLE move #0,_x1(a5) ;_x1=0
move d5,_y1(a5) ;_y1=d5
move #630,_x2(a5) ;_x2=630
move d5,_y1(a5) ;_y2=d5
add #9,d5 ;on ajoute 9 à d5
DC.W $A004 ;et on trace la H-LINE
dbf d6,BOUCLE ;on recommence 23 fois
move #0,d5 ;0 dans d5
move #42,d6 ;42 dans d6
LOOP move d5,_x1(a5) ;_x1=d5
move #0,_y1(a5) ;_y1=0
move d5,_x2(a5) ;_x2=d5
move #197,_y2(a5) ;_y2=197
add #15,d5 ;on ajoute 15 à d5
DC.W $A003 ;et on trace la LINE
dbf d6,LOOP ;on recommence 43 fois
WAIT ;attente
TERM ;fin
DATA
LIGNE DC.W %1111111111111111 ;le PAT (Nombre PAIRE
DC.W %1111111111111111 ;de MOTS)
CADRE DC.B 27,'E','Je vais tracer un quadrillage ...'
DC.B 13,10,'Fonctions LINE et H-LINE :',0
BSS
INCLUDE "TABLEAU.L" ;le Tableau du VDI
END
3) Exercice nr°3:
--------------
Voilà le listing du programme qui trace un rectangle avec un PAT
redéfini après avoir chargé le programme de quadrillage précédent.
TEXT
INCLUDE "LINEQU.L" ;les EQUs
INCLUDE "INIT_TOS.L" ;Setblock
INCLUDE "MACROS.L" ;Les MACROS
SETBLOCK ;initialisation
PRINTLINE CADRE ;texte
WAIT ;attente
PEXEC NUL,ZERO,PRG,#0 ;on charge le programme dont
;le nom est en 'PRG' en mode
;0 et sans paramètres.
DC.W $A000 ;On recherche l'adresse du T.I.
movea.l a0,a5 ;On sauve cette adresse car elle
;risque d'ètre effacée par une
;de nos MACRO si elle utilise ce
;registre...
; On pose les adresses des tableaux du VDI dans le T.I.
move.l #CONTROL,ticontrol(a0)
move.l #INTIN,tiintin(a0)
move.l #PTSIN,tiptsin(a0)
move.l #INTOUT,tiintout(a0)
move.l #PTSOUT,tiptsout(a0)
move #1,_fg_bp_1(a5)
move #0,_fg_bp_2(a5) ;Couleur=%01=1
move #0,_wrt_mode(a5) ;Write mode AND
move #7,_patmsk(a5) ;7+1=8 données pour le PAT
move.l #FILL,_patptr(a5) ;Le nouveau PAT est en
;'FILL'
;les coordonnées du rectangle
move #129,_x1(a5) ;_x1=129
move #24,_y1(a5) ;_y1=24
move #496,_x2(a5) ;_x2=496
move #183,_y2(a5) ;_y2=183
DC.W $A005 ;FILLED RECTANGLE
WAIT ;attente
TERM ;fin
DATA
FILL DC.W %0111111111111110 ;le PAT (Nombre PAIRE de
DC.W %0100000000000010 ;MOTS)
DC.W %0101000000001010
DC.W %0101111111111010
DC.W %0101000000001010
DC.W %0100000000000010
DC.W %0111111111111110
DC.W %0000000000000000
CADRE DC.B 27,'E','Je vais tracer un carré avec $A005 '
DC.B 'après avoir chargé CADRE.PRG ',0
NUL DC.B 0 ;Pas d'environnement et de
ZERO DC.B 0 ;ligne de commande
PRG DC.B 'A:\CADRE.PRG',0 ;le NOM du prg à charger
BSS
INCLUDE "TABLEAU.L" ;le Tableau du VDI
END
4) Exercice nr° 4:
---------------
Voilà le listing du programme qui affiche le SPRITE.
Il fallait faire attention à bien utiliser UNDRAW SPRITE à chaque fois
pour pouvoir réafficher le SPRITE à d'autres coordonnées.
Il fallait aussi fournir TOUS les paramètres dont les routines DRAW
SPRITE et UNDRAW SPRITE ont besoin pour obtenir un résultat correct.
J'ai choisit ,pour la forme de mon SPRITE, un sigle ATARI et mes
intitiales :L-P .(C'est pas très original, je le reconnais...)
J'utilise aussi la macro instruction VSYNC pour synchroniser nos
éditions graphiques:le programme en est fortement ralenti mais le
clignotement des affichages du SPRITE disparait...
TEXT
INCLUDE "LINEQU.L" ;Les EQUs
INCLUDE "INIT_TOS.L" ;Setblock
INCLUDE "MACROS.L" ;les MACROS
SETBLOCK ;initialisation
DC.W $A000 ;adresse du T.I. dans a0 et
movea.l a0,a5 ;dans a5 pour éviter de la
;perdre si une MACRO utilise
;le registre a0...
; On pose les adresses des Tableaux du VDI dans le T.I.
move.l #CONTROL,ticontrol(a0)
move.l #INTIN,tiintin(a0)
move.l #PTSIN,tiptsin(a0)
move.l #INTOUT,tiintout(a0)
move.l #PTSOUT,tiptsout(a0)
PRINTLINE PIX ;texte
WAIT ;attente
DC.W $A00A ;HIDE MOUSE
CCONOUT #27 ;ESC
CCONOUT #'E' ;+'E' = effacer l'écran
move #0,_wrt_mode(a5) ;Write mode AND
move.l #BLOC,a0 ;Adresse du bloc de définition
;du SPRITE dans a0
move.l #SAUVE,a2 ;Adresse du Tampon de sauvegarde
;dans a2 (128 octets pour la moy-
;enne résolution)
; Le SPRITE va d'abord de la gauche vers la droite (coordonnée X dans d0
et coordonnée Y dans d1)
move #10,X ;1 MOT=10 en 'X'
BBB add #1,X ;On ajoute 1 en 'X'
move X,d0 ;On pose le MOT de 'X' dans d0
move #100,d1 ;On pose 100 dans d1
move.l #BLOC,a0 ;L'adresse du bloc dans a0
cmpi #620,d0 ;A-t-on d0=620 ?
beq DEUX ;si OUI, va en 'DEUX'
move.l #SAUVE,a2 ;Sinon pose l'adresse du Tampon
;de sauvegarde du sprite dans a2
DC.W $A00C ;et UNDRAW SPRITE
move.l #BLOC,a0 ;L'adresse du bloc dans a0
move.l #SAUVE,a2 ;L'adresse du tampon dans a2
DC.W $A00D ;et DRAW SPRITE
VSYNC ;On synchronise
jmp BBB ;et on recommence en 'BBB'
; Puis le SPRITE revient de la droite vers la gauche.
DEUX sub #1,X ;on retranche 1 en 'X'
move X,d0 ;on pose le mot de 'X' dans d0
move #100,d1 ;on pose 100 dans d1
move.l #BLOC,a0 ;L'adresse du bloc dans a0
cmpi #10,d0 ;A-t-on d0=10 ?
beq FIN ;Si OUI, alors va en 'FIN'
move.l #SAUVE,a2 ;Sinon adresse du tampon dans a2
DC.W $A00C ;et UNDRAW SPRITE
move.l #BLOC,a0 ;L'adresse du bloc dans a0
move.l #SAUVE,a2 ;L'adresse du tampon dans a2
DC.W $A00D ;et DRAW SPRITE
VSYNC ;On synchronise
jmp DEUX ;et on recommence en 'DEUX'
FIN WAIT ;attente
TERM ;fin
DATA
;Le bloc de définition du SPRITE:
BLOC DC.W 0 ;X du point chaud
DC.W 0 ;Y du point chaud
DC.W 0 ;Format VDI
DC.W 0 ;Couleur du MASQUE
DC.W 1 ;Couleur du premier plan
DC.W 0 ;pas de masque
DC.W %0000000000000000 ;1° ligne du 1° plan
DC.W 0 ;pas de masque
DC.W %0000110110110000 ;2° ligne du 1° plan
DC.W 0 ;pas de masque
DC.W %0000110110110000
DC.W 0
DC.W %0000110110110000
DC.W 0
DC.W %0001100110011000
DC.W 0
DC.W %0011000110001100
DC.W 0
DC.W %0011000110001100
DC.W 0
DC.W %0110000110000110
DC.W 0
DC.W %0110000110000110
DC.W 0
DC.W %0000000000000000
DC.W 0
DC.W %0011000001111100
DC.W 0
DC.W %0011000001101100
DC.W 0
DC.W %0011000001111000
DC.W 0
DC.W %0011000001100000
DC.W 0
DC.W %0011111001100000
DC.W 0 ;pas de MASQUE
DC.W %0000000000000000 ;16 ° ligne du 1° plan
PIX DC.B 27,'E','Je vais faire bouger un SPRITE avec '
DC.B '$A00D',0
BSS
X DS.W 1 ;on réserve un MOT en 'X'
SAUVE DS.B 128 ;le TAMPON pour le SPRITE ( MOYENNE
;résolution)
INCLUDE "TABLEAU.L" ;le tableau du VDI
END
5) Exercice nr°5:
--------------
Voilà le listing du programme qui affiche les points de différente
couleur sur l'écran.
TEXT
INCLUDE "LINEQU.L" ;les EQUs
INCLUDE "INIT_TOS.L" ;Setblock
INCLUDE "MACROS.L" ;les MACROS
; Je teste d'obord si on est dans la bonne résolution:
GETREZ ;on demande la Résolution
tst d0 ;A-t-on résolution=0 (BASSE)
beq OK ;Si Oui va en 'OK'
PRINTLINE MOYENNE ;sinon message
WAIT ;attente
TERM ;et fin
OK SETBLOCK ;initialise
DC.W $A000 ;adresse du T.I. dans a0
; On pose les adresses des tableaux du VDI dans le T.I.
move.l #CONTROL,ticontrol(a0)
move.l #INTIN,tiintin(a0)
move.l #PTSIN,tiptsin(a0)
move.l #INTOUT,tiintout(a0)
move.l #PTSOUT,tiptsout(a0)
DC.W $A00A ;HIDE MOUSE
PRINTLINE MESSAGE ;texte
WAIT ;attente
CCONOUT #27 ;ESC
CCONOUT #'E' ;+'E' = effacer l'écran
; Je définit une MACRO INSTRUCTION nommée POINT qui admet 3 paramètres
; et qui permet d'éditer un point à l'écran gràce à la routine $A001
POINT MACRO $\1,$\2,$\3 ;macro à 3 paramètres
move \1,ptsin ;\1=coordonnée X
move \2,ptsin+2 ;\2=coordonnée Y
move \3,intin ;\3=couleur
DC.W $A001 ;PUT PIXEL
ENDM ;fin de la macro
; Ici je vais afficher tous les points de l'écran et je leurs donne une
; couleur grƒce au nombre aléatoire que me donne RANDOM dans d0.
; Pour ne pas obtenir un nombre trop grand avec RANDOM, je masque le
; nombre de d0 avec le nombre maximum de chiffres dont j'ai besoin.
; On obtient ainsi un nombre compris entre 0 et la valeur du masque
; (Voir le chapitre sur le BIOS et l'XBIOS à la fonction RANDOM ...)
; Si d0=0 (couleur 0), je recommence le test avec RANDOM car la couleur
; du bord ne doit pas changer.
move #319,d5 ;319 dans d5
move #1,d0 ;1 dans d0
PALETTE NOUVEAU ;on change la PALETTE une
;première fois
LOOP move #199,d6 ;199 dans d6
BOUCLE POINT d5,d6,d0 ;POINT aux coordonnées
;(d5,d6) et avec la couleur
;contenue dans d0
ENCORE RANDOM ;Nombre aléatoire en retour
;dans d0
and.l #15,d0 ;on masque les 4 bits de plus
;faible poids de d0 :15=%1111
tst d0 ;A-t-on d0=0 ?
beq ENCORE ;Si oui, on recommence
dbf d6,BOUCLE ;on boucle d6 fois en BOUCLE
dbf d5,LOOP ;on boucle d5 fois en LOOP
; Maintenant on fait varier la valeur de la palette des couleurs:
; On a crée un vecteur qui contient les adresses des palettes.
; (En 'VECTEUR')
; On prend une de ces adresses et on change la palette (Je n'utilise pas
; la MACRO PALETTE que nous avons crée car elle attend un LABEL comme pa-
; ramètre.) puis on recommence avec l'adresse de la palette suivante...
; J'utilise aussi INKEY pour tester si on enfonce une touche et si tel
; est le cas, le programme se termine.
ICI move #14,d6 ;14 dans d6
lea VECTEUR,a6 ;adresse de 'VECTEUR' dans a6
CHANGE move.l (a6)+,-(sp) ;on pose le L-M pointé par a6
;(une adresse pour la palette)
;dans -(SP)
move #6,-(sp) ;Code 6 (PALETTE)
trap #14 ;du BIOS
addq.l #6,sp ;et on repositionne SP
INKEY ;je teste une touche au vol
tst d0 ;d0=0 ? (Si=0,pas de touche)
bne RETOUR ;Si NON (1 touche a été en-
;foncée) on va en 'RETOUR'
dbf d6,CHANGE ;Sinon boucle en 'CHANGE'
jmp ICI ;puis va en 'ICI'
RETOUR CCONOUT #27 ;ESC
CCONOUT #'E' ;+'E' = effacer l'écran
PALETTE ANCIEN ;On remet l'ancienne PALETTE
TERM ;et on quitte le prg
DATA
; Les données définissant les palettes qu'on affiche sucessivement pour
; obtenir une rotation des couleurs.
; A chaque palette, on fait une rotation d'une couleur vers la droite...
; La couleur 0 ne change jamais pour éviter d'obtenir un clignotement du
; bord de l'écran (Couleur 0)
NOUVEAU DC.W $000,$027,$037,$027,$017,$016,$006,$015
DC.W $014,$036,$025,$005,$004,$014,$007,$003
UN DC.W $000,$007,$027,$037,$027,$017,$016,$006
DC.W $014,$015,$036,$025,$005,$004,$014,$007
DEUX DC.W $000,$003,$007,$027,$037,$027,$017,$016
DC.W $006,$015,$014,$036,$025,$005,$004,$014
TROIS DC.W $000,$007,$003,$007,$027,$037,$027,$017
DC.W $016,$006,$015,$014,$036,$025,$005,$004
QUATRE DC.W $000,$014,$007,$003,$007,$027,$037,$027
DC.W $017,$016,$006,$015,$014,$036,$025,$005
CINQ DC.W $000,$004,$014,$007,$003,$007,$027,$037
DC.W $027,$017,$016,$006,$015,$014,$036,$025
SIX DC.W $000,$005,$004,$014,$007,$003,$007,$027
DC.W $037,$027,$017,$016,$006,$015,$014,$036
SEPT DC.W $000,$025,$005,$004,$014,$007,$003,$014
DC.W $007,$027,$037,$027,$017,$016,$006,$015
HUIT DC.W $000,$036,$025,$005,$004,$014,$007,$003
DC.W $014,$007,$027,$037,$027,$017,$016,$006
NEUF DC.W $000,$015,$036,$025,$005,$004,$014,$007
DC.W $003,$014,$007,$027,$037,$027,$017,$016
DIX DC.W $000,$006,$015,$036,$025,$005,$004,$014
DC.W $07,$003,$014,$007,$027,$037,$027,$017
ONZE DC.W $000,$016,$006,$015,$036,$025,$005,$004
DC.W $014,$007,$003,$014,$007,$027,$037,$027
DOUZE DC.W $000,$017,$016,$006,$015,$036,$025,$005
DC.W $004,$014,$007,$003,$014,$007,$027,$037
TREIZE DC.W $000,$027,$017,$016,$006,$015,$036,$025
DC.W $005,$004,$014,$007,$003,$014,$007,$027
QUATORZE DC.W $000,$037,$027,$017,$016,$006,$015,$036
DC.W $025,$005,$004,$014,$007,$003,$014,$007
; Le vecteur qui pointe sur les adresses des différentes palettes
VECTEUR DC.L NOUVEAU,UN,DEUX,TROIS,QUATRE,CINQ,SIX,SEPT
DC.L HUIT,NEUF,DIX,ONZE,DOUZE,TREIZE,QUATORZE
; L'ancienne palette
ANCIEN DC.W $777,$500,$070,$000,$000,$000,$000,$000
DC.W $000,$000,$000,$000,$000,$000,$000,$000
MESSAGE DC.B 27,'E',174,' Image brouillée ',175,':avec la'
DC.B ' fonction',13,10,'$A001 et RANDOM pour les'
DC.B 'couleurs ...',13,10,13,10,'(Une touche pour'
DC.B 'Quitter)',0
MOYENNE DC.B 27,'E','ATTENTION, Ce programme ne marche '
DC.B 'qu',39,'en BASSE RESOLUTION !',13,10,'Il faut '
DC.B 'changer la résolution grace au BUREAU GEM...',7,0
BSS
INCLUDE "TABLEAU.L" ;le tableau du VDI
END
6) Exercice nr°6:
--------------
Voilà le corrigé du programme qui affiche les losanges sans puis avec
le CLIPPING...
TEXT
INCLUDE "LINEQU.L" ;Les EQUs
INCLUDE "INIT_TOS.L" ;Setblock
INCLUDE "MACROS.L" ;Les MACROS
SETBLOCK ;initialisation
DC.W $A000 ;adresse du T.I. dans a0
movea.l a0,a5 ;je la sauve au cas o— ...
; On pose les adresses des tableaux du VDI dans le T.I.
move.l #CONTROL,ticontrol(a0)
move.l #INTIN,tiintin(a0)
move.l #PTSIN,tiptsin(a0)
move.l #INTOUT,tiintout(a0)
move.l #PTSOUT,tiptsout(a0)
PRINTLINE UN ;texte
WAIT ;attente
DC.W $A00A ;HIDE MOUSE
CCONOUT #27 ;ESC
CCONOUT #'E' ;+'E' = effacer l'écran
move #0,_fg_bp_1(a5)
move #1,_fg_bp_2(a5) ;couleur %10=2
move #0,_wrt_mode(a5) ;Write mode AND
move #1,_patmsk(a5) ;2 données pour le PAT
move.l #PAT,_patptr(a5) ;en 'PAT'
move #4,sptsin ;4 sommets (losange)
move #0,_clip(a5) ;PAS de CLIPPING
jsr TRACER ;et on trace le losange
WAIT ;attente
PRINTLINE DEUX ;texte
WAIT ;attente
CCONOUT #27 ;ESC
CCONOUT #'E' ;+'E' = effacer l'écran
move #1,_clip(a5) ;AVEC CLIPPING
; Les coordonnées du CADRE DU CLIPPING sont: (0,0)-(320,190)
move #0,_xmn_clip(a5)
move #0,_ymn_clip(a5)
move #320,_xmx_clip(a5)
move #190,_ymx_clip(a5)
jsr TRACER ;et on trace le losange
WAIT ;attente
TERM ;fin
; Ici on trace le losange avec FILLED POLYGONE:
; Coordonnées du POLYGONE dans PTSIN: (320,10)-(570,100)-(320,190)-
; (70,100) et on boucle avec (320,10)
TRACER move #320,ptsin
move #10,ptsin+2
move #570,ptsin+4
move #100,ptsin+6
move #320,ptsin+8
move #190,ptsin+10
move #70,ptsin+12
move #100,ptsin+14
move #320,ptsin+16
move #10,ptsin+18
; Ici on apelle FILLED POLYGONE pour chaque ligne HORIZONTALE du losange:
de Y=10 à Y=190 (car notre losange n'est définit qu'entre ces lignes)
move #9,d6 ;9 dans d6
BOUCLE add #1,d6 ;on ajoute 1 à d6
move d6,_y1(a5) ;on pose d6 dans _y1
DC.W $A006 ;FILLED POLYGONE
cmpi #190,d6 ;A-t-on d6=190 ?
bne BOUCLE ;Si NON alors recommence en BOUCLE
rts ;RETOUR du SOUS-PROGRAMME
DATA
PAT DC.W %1111111111111110 ;le PAT (Nombre PAIRE
DC.W %0000000000000000 ;de MOTS)
UN DC.B 27,'E','Je trace un POLYGONE avec $A006 :',0
DEUX DC.B 27,'E','Je trace le mème POLYGONE en utilisant '
DC.B 'le CLIPPING',0
BSS
INCLUDE "TABLEAU.L" ;Le tableau du VDI
END
------------------
Voilà pour la correction des exercices sur les LineAs...
Les listings de ces 6 programmes ainsi que les programmes exécutables
se trouvent bien entendu sur cette disquette dans les fichiers:
1) TRANSMOU.L & TRANSMOU.PRG
2) CADRE .L & CADRE .PRG
3) RECTANGL.L & RECTANGL.PRG
4) SPRITE .L & SPRITE .PRG
5) POINT .L & POINT .PRG
6) POLYGONE.L & POLYGONE.PRG
PIECHOCKI Laurent
8,Impasse Bellevue Suite dans le fichier: INTERRUP.DOC
57980 TENTELING ------------
Back to ASM_Tutorial