Pl2 CORRIG 3.DOC/fr
------------------------- 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