<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=Pl2_INTER_2.DOC</id>
	<title>Pl2 INTER 2.DOC - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=Pl2_INTER_2.DOC"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;action=history"/>
	<updated>2026-05-13T20:13:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;diff=16128&amp;oldid=prev</id>
		<title>&gt;Wongck at 15:25, 12 October 2011</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;diff=16128&amp;oldid=prev"/>
		<updated>2011-10-12T15:25:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:25, 12 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l151&quot;&gt;Line 151:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 151:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Programming&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ASSEMBLEUR 68000 sur ATARI ST Part 2&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Wongck</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;diff=16127&amp;oldid=prev</id>
		<title>&gt;Silver Surfer: Added category</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;diff=16127&amp;oldid=prev"/>
		<updated>2009-05-02T20:46:11Z</updated>

		<summary type="html">&lt;p&gt;Added category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:46, 2 May 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l151&quot;&gt;Line 151:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 151:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Programming]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Silver Surfer</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;diff=16126&amp;oldid=prev</id>
		<title>&gt;Zorro 2 at 15:07, 9 October 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_INTER_2.DOC&amp;diff=16126&amp;oldid=prev"/>
		<updated>2006-10-09T15:07:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  suite sur les INTERRUPTIONS ...&lt;br /&gt;
  ---------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  14) TBCR :Identique Ã  TACR, sauf que ce regsitre controle le TIMER B&lt;br /&gt;
            ($FFFA1B)&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
  15) TCDCR:Vecteur bit ayant le mÃ¨me role que TACR et TBCR pour les&lt;br /&gt;
            TIMER C et TIMER D, mais ici seul le  DELAY MODE est dis-&lt;br /&gt;
            ponible.&lt;br /&gt;
            ($FFFA1D)&lt;br /&gt;
&lt;br /&gt;
            Les bits 0 Ã  2 sont râ€šservâ€šs au TIMER C&lt;br /&gt;
            Les bits 4 Ã  6 sont râ€šservâ€šs au TIMER D&lt;br /&gt;
&lt;br /&gt;
            Voir le tableau de TACR pour la signification des bits...&lt;br /&gt;
&lt;br /&gt;
            Je vous rappelle que nous n'utiliserons pas ces TIMERS car&lt;br /&gt;
            ils sont dâ€šjÃ  utilisâ€šs par le systÃ¨me Ã  l'origine.&lt;br /&gt;
&lt;br /&gt;
  16) Ã  19) TADR,TBDR,TCDR,TDDR (Ã  partir de $FFFA1F):&lt;br /&gt;
&lt;br /&gt;
      VoilÃ  les registres de DONNEES des 4 TIMERS ...&lt;br /&gt;
&lt;br /&gt;
  20) Ã  24) SRC,CR,RSR,TSR,DR (Ã  partir de $AFFF27):&lt;br /&gt;
&lt;br /&gt;
      Des registres qui ne sont pas utilisâ€šs par les TIMERS, et ils &lt;br /&gt;
      se contentent de controler les â€šmissions de caractÃ¨res...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Maintenant que vous Ã¨tes familiarisâ€š avec les diffâ€šrents registres&lt;br /&gt;
  du MFP 68901, vous pourrez commencer Ã  râ€šaliser vos premiers pro-&lt;br /&gt;
  grammes sous interruption.&lt;br /&gt;
&lt;br /&gt;
  Pour modifier un registre du MFP, il suffit de connaitre l'adresse&lt;br /&gt;
  du registre et d'y dâ€šposer les donnâ€šes qu'il faut.&lt;br /&gt;
&lt;br /&gt;
 - VoilÃ  comment il faut procÃ¨der pour mettre une routine sous &lt;br /&gt;
   interruption: &lt;br /&gt;
   &lt;br /&gt;
  --------------------------------------------------------------------        &lt;br /&gt;
  * On passe en MODE SUPERVISEUR pour pouvoir atteindre les registre&lt;br /&gt;
    du MFP.&lt;br /&gt;
  * On met Ã  0 le bit correspondant au TIMER utilisâ€š dans le registre&lt;br /&gt;
    IMR.(Avec en AND #BBB,destination ou un BCLR #BBB,destination)&lt;br /&gt;
  * On met Ã  0 le bit correspondant au TIMER utilisâ€š dans le registre&lt;br /&gt;
    ISR.&lt;br /&gt;
  * On met Ã  0 le bit correspondant au TIMER utilisâ€š dans le registre&lt;br /&gt;
    IPR.&lt;br /&gt;
  * On met Ã  0 le bit correspondant au TIMER utilisâ€š dans le registre&lt;br /&gt;
    IER.         &lt;br /&gt;
  * On installe notre routine:&lt;br /&gt;
&lt;br /&gt;
   .Soit en dâ€šposant l'adresse de notre routine directement dans le&lt;br /&gt;
    VECTEUR D'EXCEPTION correspondant au TIMER utilisâ€š:&lt;br /&gt;
    $134 pour le TIMER A, $120 pour le TIMER B, $114 pour le TIMER C,&lt;br /&gt;
    $110 pour le TIMER D (avec MOVE.L #ADRESSE,$vecteur)&lt;br /&gt;
    (Voir le Tableau des vecteurs d'exception)&lt;br /&gt;
&lt;br /&gt;
    Puis en modifiant directement les REGISTRES DE CONTROLE et DE DONNEE&lt;br /&gt;
    du TIMER en dâ€šposant les nouvelles valeurs aux adresses de ceux-ci.&lt;br /&gt;
    (Avec MOVE.B  #VALEUR,$adresse) &lt;br /&gt;
    (Voir les adresses des REGISTRES TACR,TBCR,TCDCR (CONTROLE) et les&lt;br /&gt;
    adresses des REGISTRES TADR,TBDR,TCDR,TDDR (DONNEE) )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
   .Soit en appelant une fonction de l'XBIOS qui le fait Ã  notre place:&lt;br /&gt;
    C'est la fonction XBTIMER de l'XBIOS.&lt;br /&gt;
  &lt;br /&gt;
    Les paramÃ¨tres Ã  passer sont:&lt;br /&gt;
&lt;br /&gt;
    L-M:Adresse de la routine    &lt;br /&gt;
    MOT:Valeur du registre de DONNEE&lt;br /&gt;
    MOT:Valeur de registre de CONTROLE&lt;br /&gt;
    MOT:Le code du TIMER (0=TIMER A,1=TIMER B,2=TIMER C,3=TIMER D)&lt;br /&gt;
    MOT:Code de la fonction = $1F&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
   Il faudra encore:&lt;br /&gt;
&lt;br /&gt;
  .Mettre le bit du registre IER correspondant Ã  notre TIMER Ã  1 (Pour&lt;br /&gt;
   valider notre routine sous interruption) &lt;br /&gt;
  .Mettre le bit du registre IMR correspondant Ã  notre TIMER Ã  1 &lt;br /&gt;
   &lt;br /&gt;
  ----------------------------------------------------------------------&lt;br /&gt;
   Et voilÃ , ma routine est installâ€še !!!&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
   La routine elle mÃªme:&lt;br /&gt;
   ---------------------&lt;br /&gt;
   La routine Ã  mettre sous interruption devra pouvoir s'exâ€šcuter &lt;br /&gt;
   entiÃ¨rement avant l'appel suivant du TIMER car sinon attention&lt;br /&gt;
   au plantage !!&lt;br /&gt;
   Celle-ci ne devra donc pas Ãªtre trop longue:&lt;br /&gt;
   On ne pourra pas par exemple mettre une routine qui demande 0,5 &lt;br /&gt;
   secondes pour s'exâ€šcuter entiÃ¨rement sous interruption et rÃ¨gler&lt;br /&gt;
   sa frâ€šquence d'appel Ã  0,007 secondes ...&lt;br /&gt;
 &lt;br /&gt;
   Votre routine sous interruption devra toujours se terminer par:&lt;br /&gt;
&lt;br /&gt;
    .Une mise Ã  0 du bit correspondant au TIMER utilisâ€š du registre ISR&lt;br /&gt;
     ,pour indiquer au MFP que la routine se termine.&lt;br /&gt;
&lt;br /&gt;
               --------------------------------&lt;br /&gt;
     Avec      BCLR  #5,$FFFA07 pour le TIMER A        (Sur ISRA)&lt;br /&gt;
     ou        BLCR  #0,$FFFA11 pour le TIMER B        (Sur ISRB)&lt;br /&gt;
&lt;br /&gt;
               --------------------------------&lt;br /&gt;
&lt;br /&gt;
    .Un RTE (Return From Exception)  &lt;br /&gt;
        ---&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  De plus, comme votre routine s'exâ€šcute Ã  intervals râ€šguliers, je vous&lt;br /&gt;
  dâ€šconseille fortement d'utiliser les registre DN ou AN (mÃ¨me SP) car&lt;br /&gt;
  ceci peut provoquer des changments brusques au niveaux des registres&lt;br /&gt;
  conscernâ€šs dans la programme principal.(Le programme sous interruption&lt;br /&gt;
  s'exâ€šcutant sans interrompre le programme principal, nous en verrons &lt;br /&gt;
  une trÃ¨s bonne illustration dans un prochain exercice)&lt;br /&gt;
&lt;br /&gt;
  Le programme sous interruption pourra toutefois faire appel Ã  des&lt;br /&gt;
  adresses du segment DATA ou BSS pour lire ou dâ€šposer des valeurs...&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  VoilÃ  pour la thâ€šorie, je vous conseille fortement de relire tout&lt;br /&gt;
  le chapitre Ã  fond car maintenant viennent les EXERCICES ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          &lt;br /&gt;
                              -----------------&lt;br /&gt;
&lt;br /&gt;
  PIECHOCKI  Laurent&lt;br /&gt;
  8,Impasse Bellevue            Suite dans le fichier:EXOS_4.DOC &lt;br /&gt;
  57980  TENTELING                                    ----------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Back to [[ASM_Tutorial]]&lt;/div&gt;</summary>
		<author><name>&gt;Zorro 2</name></author>
	</entry>
</feed>