Olivier Pécheux
 opecheux@multimania.com  | 
| > source=Modif_P.PAS | 
| >I) Introduction | 
| >II) Dessiner à l'écran | 
| >II.1) Tableau prédéfini mem | 
          mem[$A000:offset]:=couleur
 | l | 
          const ecran=$A000;
             ....
          mem[ecran:offset]:=couleur
 | l | 
| >II.2) Pointeur sur la mémoire | 
     {Déclaration:}
          const ecran:^array[0..63999] of byte = ptr($A000,$0000);
             ....
     {Utilisation:}
          ecran^[offset]:=couleur;
 | l | 
| >II.3) Tableau direct | 
     {Déclaration:}
          var ecran:array[0..63999] of byte absolute $A000:$000
               ....
     {Utilisation:}
          ecran[offset]:=couleur;
 | l | 
| >II.4) Bilan | 
| >III) Les incrémentations de X et de Y | 
| l | Où sont les astuces promises? | 
| l | 
 
  | 
     { Initialisation }
          const largeur_ecran:=320;
          offset_P:=(((y shl 2) + y) shl 6) +X; {voir "Tu veux mon point quelque part?"}
     { Incrémentation de X: }
          inc(offset_P);
     { Incrémentation de Y: }
          inc(offset_P,largeur_ecran);
 | l | 
| >IV) Offset du deuxième point | 
| l | Si offset_P augmente d'une certaine quantité, offset_Q diminue d'autant. | 
| l | 
Pour dessiner une droite:
 
 
 
 
  | 
| l | Il est fou: il retire des incrémentations mais il rajoute une variable qu'il faut décrémenter! | 
| >V) Les 8 quadrans | 
               ^y
          \  3 | 2  /
           \   |   /
            \  |  /
          4  \ | /  1
              \|/    
          -----*----->x
              /|\    
          5  / | \  8
            /  |  \  
           /   |   \ 
          /  6 | 7  \
 | l | 
| >V.1) Quadrans opposé | 
| >V.2) Fortes pentes et faibles pentes | 
| >V.3) Symétries horizontales | 
| >VI) Un programme qui se modifie | 
| l | Si on modifie le programme, cela modifie la mémoire mais pas la queue de prélecture. | 
| >VI.1) MODIF_P.PAS | 
| >VI.2) Auto_modifie_1 | 
| >VI.3) Auto_modifie_2 | 
| >VI.4) Auto_modifie_3 | 
| >VII) Enfin les droites! | 
| >VII.1) Procedure droite | 
| >VII.2) Procedure droite_horizontale | 
| >VII.3) Procedure droite_verticale | 
| >VII.4) Procedure cadre | 
| >VII.5) Procedure rectangle | 
| >VIII) Peut-on faire mieux? | 
| >IX) Conclusions |