<?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_BIOS.DOC</id>
	<title>Pl2 BIOS.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_BIOS.DOC"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_BIOS.DOC&amp;action=history"/>
	<updated>2026-05-13T20:19:41Z</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_BIOS.DOC&amp;diff=16104&amp;oldid=prev</id>
		<title>&gt;Wongck at 15:19, 12 October 2011</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_BIOS.DOC&amp;diff=16104&amp;oldid=prev"/>
		<updated>2011-10-12T15:19:23Z</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:19, 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-l606&quot;&gt;Line 606:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 606:&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_BIOS.DOC&amp;diff=16103&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_BIOS.DOC&amp;diff=16103&amp;oldid=prev"/>
		<updated>2009-05-02T20:43:17Z</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:43, 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-l606&quot;&gt;Line 606:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 606:&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_BIOS.DOC&amp;diff=16102&amp;oldid=prev</id>
		<title>&gt;Zorro 2 at 15:05, 9 October 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl2_BIOS.DOC&amp;diff=16102&amp;oldid=prev"/>
		<updated>2006-10-09T15:05:18Z</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;
                             CHAPITRE NRÂ° 6&lt;br /&gt;
     &lt;br /&gt;
                            LES FONCTIONS DU&lt;br /&gt;
&lt;br /&gt;
                           BIOS et de l'XBIOS&lt;br /&gt;
&lt;br /&gt;
                          -------------------- &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                      *** LES FONCTIONS DU BIOS ***&lt;br /&gt;
                      -----------------------------&lt;br /&gt;
&lt;br /&gt;
- Toutes les remarques prâ€šcâ€šdentes conscernant les fonctions du GEMDOS &lt;br /&gt;
  sont encore valables pour les fonctions du BIOS:&lt;br /&gt;
  &lt;br /&gt;
  .Initialisation indispensable (SETBLOCK)&lt;br /&gt;
  .Mode de transmission des paramÃ¨tres par le pile systÃ¨me.&lt;br /&gt;
  .Retour de certaines valeurs dans certains registres.&lt;br /&gt;
  &lt;br /&gt;
  Le nrÂ° de TRAP qui correspond aux fonctions du BIOS est: TRAP #13&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Je vais maintenant enumâ€šrer et commenter les fonctions du BIOS qui sont&lt;br /&gt;
  utiles ou intâ€šressantes.(tout comme pour les fonctions du GEMDOS...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$04 (RWABS),MOT=unitâ€š de disquette,MOT=nrÂ°secteur dâ€šbut,MOT=nombre de sec-&lt;br /&gt;
---         teurs Ã  lire ou Ã  â€šcrire,L-M=adresse d'un tampon,MOT=mode&lt;br /&gt;
&lt;br /&gt;
RWABS permet d'â€šcrire ou lire des secteurs sur disquette.&lt;br /&gt;
&lt;br /&gt;
Les paramÃ¨tres Ã  passer sont:&lt;br /&gt;
&lt;br /&gt;
1Â°:Le nrÂ° de l'unitâ€š de disquette conscernâ€še:&lt;br /&gt;
   0=Drive A,1=Drive B,2=Disque dur&lt;br /&gt;
2Â°:Le nrÂ° du secteur ou RWABS doit dâ€šbuter l'opâ€šration&lt;br /&gt;
3Â°:Le nombre de secteurs Ã  lire ou Ã  â€šcrire&lt;br /&gt;
4Â°:L'adresse du tampon de donnâ€šes Ã  lire ou Ã  â€šcrire selon le cas.&lt;br /&gt;
   La taille d'un secteur est de 512 octets.&lt;br /&gt;
5Â°:Le mode d'action de RWABS:&lt;br /&gt;
   0=lecture des secteurs&lt;br /&gt;
   1=â€šcriture des secteurs&lt;br /&gt;
   2=lecture (ne tient pas compte d'un changement de disquette lors de &lt;br /&gt;
     l'opâ€šration)&lt;br /&gt;
   3=â€šcriture (ne tient pas compte d'un changement de disquette lors de&lt;br /&gt;
     l'opâ€šration)&lt;br /&gt;
&lt;br /&gt;
RWABS retourne dans d0 une valeur nulle si tout est OK, ou un code &lt;br /&gt;
d'erreur nâ€šgatif dont la valeur peut Ã¨tre:&lt;br /&gt;
&lt;br /&gt;
 -1=plantage&lt;br /&gt;
 -2=lecteur non prÃªt&lt;br /&gt;
 -3=ordre inconnu&lt;br /&gt;
 -4=erreur CRC  &lt;br /&gt;
 -5=ordre incorrect &lt;br /&gt;
 -6=piste non trouvâ€še&lt;br /&gt;
 -7=bootsector endommagâ€š&lt;br /&gt;
 -8=secteur non trouvâ€š&lt;br /&gt;
-10=erreur d'â€šcriture&lt;br /&gt;
-11=erreur de lecture&lt;br /&gt;
-13=disquette protâ€šgâ€še en â€šcriture&lt;br /&gt;
-14=disquette changâ€še pendant la lecture ou l'â€šcriture&lt;br /&gt;
-15=pâ€šriphâ€šrique inconnu&lt;br /&gt;
-16=vâ€šrification d'un secteur mal â€šcrit&lt;br /&gt;
-17=pas de disquette&lt;br /&gt;
  &lt;br /&gt;
          MOVE      #0,-(SP)       ;DRIVE A&lt;br /&gt;
          MOVE      #0,-(SP)       ;dâ€šbut au secteur 0 &lt;br /&gt;
          MOVE      #10,-(SP)      ;10 secteurs&lt;br /&gt;
          PEA       tampon         ;adresse des donnâ€šes&lt;br /&gt;
          MOVE      #1,-(SP)       ;â€šcriture&lt;br /&gt;
          MOVE      #4,-(SP)&lt;br /&gt;
          TRAP      #13&lt;br /&gt;
          ADDA.L    #14,SP&lt;br /&gt;
&lt;br /&gt;
          DATA&lt;br /&gt;
&lt;br /&gt;
tampon    DS.B      5120     ; les donnâ€šes Ã  â€šcrire sur les 10 secteurs&lt;br /&gt;
                             ; 10 secteurs=512*10 octets &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$05 (SETEXEC),L-M=valeur du nouveau vecteur,MOT=nrÂ° du vecteur Ã  changer&lt;br /&gt;
---&lt;br /&gt;
SETEXEC permet de changer la valeur d'un vecteur d'exeption.&lt;br /&gt;
(J'expliquerais en dâ€štail dans un chapitre sur les VECTEURS D'EXEPTION)&lt;br /&gt;
&lt;br /&gt;
     PEA       nouveau        ;nouvelle adresse&lt;br /&gt;
     MOVE      #10,-(SP)      ;10=instruction illâ€šgale&lt;br /&gt;
     MOVE      #5,-(SP)&lt;br /&gt;
     TRAP      #13&lt;br /&gt;
     ADDA.L    #8,SP&lt;br /&gt;
&lt;br /&gt;
$09 (MEDIACH),MOT=nrÂ° du drive&lt;br /&gt;
---&lt;br /&gt;
MEDIACH permet de savoir si une disquette a â€štâ€š sortie ou introduite dans&lt;br /&gt;
le lecteur de disquette dont on spâ€šcifie le nrÂ°. (0=Drive A,1=Drive B...)&lt;br /&gt;
Cette fonction marche seulement si la disquette n'est PAS protâ€šgâ€še en &lt;br /&gt;
â€šcriture...&lt;br /&gt;
&lt;br /&gt;
D0 retourne avec:&lt;br /&gt;
&lt;br /&gt;
0 si la disquette a â€štâ€š maintenue. &lt;br /&gt;
1 si la disquette a des chances d'avoir â€štâ€š changâ€še (incertain).&lt;br /&gt;
2 si la disquette a â€štâ€š changâ€še.  &lt;br /&gt;
 &lt;br /&gt;
MEDIACH oppÃ¨re un test depuis le dâ€šbut de l'execution du programme et Ã &lt;br /&gt;
intervalles râ€šguliers.&lt;br /&gt;
(Regardez la lumiâ€šre du LED rouge du lecteur de disquette clignoter trÃ¨s&lt;br /&gt;
faiblement Ã  intervalles râ€šguliers quand le lecteur est au repos...)&lt;br /&gt;
 &lt;br /&gt;
CHANGED   MACRO     $\1       ;MACRO Ã  1 paramÃ¨tre (MEDIACH)&lt;br /&gt;
          MOVE      \1,-(SP)  ;\1=nrÂ° du drive Ã  tester&lt;br /&gt;
          MOVE      #9,-(SP)&lt;br /&gt;
          TRAP      #13&lt;br /&gt;
          ADDQ.L    #4,SP     ;retour dans d0&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
          CHANGED   #1        ;la disquette du drive A a-t-elle â€štâ€š &lt;br /&gt;
                              ;changâ€še?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$0A (DRVMAP),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
Cette fonction retourne dans d0 les diffâ€šrents lecteurs de disquettes&lt;br /&gt;
connectâ€šs.&lt;br /&gt;
Le bit nrÂ°X de d0 est actif quand le drive nrÂ°X est disponible.&lt;br /&gt;
(0=Drive A,1=Drive B...)&lt;br /&gt;
&lt;br /&gt;
NBD  MACRO&lt;br /&gt;
     MOVE      #$A,-(SP)&lt;br /&gt;
     TRAP      #13&lt;br /&gt;
     ADDQ.L    #2,SP&lt;br /&gt;
     ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
     NDB&lt;br /&gt;
&lt;br /&gt;
si d0.B retourne %00001001,les lecteurs A et D sont disponibles.&lt;br /&gt;
(On peut tester les bits de d0 avec BTST #X par exp. pour savoir si un&lt;br /&gt;
lecteur X est disponible...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$0B (GETSHIFT),MOT=-1&lt;br /&gt;
---&lt;br /&gt;
GETSHIFT permet d'obtenir l'â€štat de certaines touches qui peuvent pas &lt;br /&gt;
Ãªtre dâ€štectâ€šes par les autres fonctions d'attente de touche.&lt;br /&gt;
&lt;br /&gt;
Il faut passer Ã  GETSHIFT un mot=-1 par l'intermâ€šdiaire de la pile &lt;br /&gt;
systÃ¨me pour obtenir dans d0.B un octet dont les bits ont la signi-&lt;br /&gt;
fication suivante: &lt;br /&gt;
  &lt;br /&gt;
nrÂ° du bit: Signification &lt;br /&gt;
&lt;br /&gt;
0         :Shift de droite&lt;br /&gt;
1         :Shift de gauche&lt;br /&gt;
2         :Control&lt;br /&gt;
3         :Alternate&lt;br /&gt;
4         :Caps Lock&lt;br /&gt;
5         :Clr/Home (ou touche droite de la souris)&lt;br /&gt;
6         :Insert   (ou touche gauche de la souris)&lt;br /&gt;
&lt;br /&gt;
Si le bit est actif,la touche correspondante est activâ€še.&lt;br /&gt;
&lt;br /&gt;
GETSHIFT  MACRO     $\1       ;MACRO a 1 paramÃ¨tre&lt;br /&gt;
          MOVE      \1,-(SP)  ;\1=-1 pour l'â€štat des touches&lt;br /&gt;
          MOVE      #$B,-(SP)&lt;br /&gt;
          TRAP      #13&lt;br /&gt;
          ADDQ.L    #4,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
test      GETSHIFT&lt;br /&gt;
          BTST      #2,D0     ;a-t-on enfoncâ€š la touche Control ?&lt;br /&gt;
          BEQ       test      ;si Bit=0:Z=1=non=retest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                    *** LES FONCTIONS DU XBIOS ***&lt;br /&gt;
                    ------------------------------     &lt;br /&gt;
&lt;br /&gt;
- Toutes les remarques prâ€šcâ€šdentes conscernant les fonctions du BIOS &lt;br /&gt;
  sont encore valables pour les fonctions du XBIOS:&lt;br /&gt;
  &lt;br /&gt;
  .Initialisation indispensable (SETBLOCK)&lt;br /&gt;
  .Mode de transmission des paramÃ¨tres par le pile systÃ¨me.&lt;br /&gt;
  .Retour de certaines valeurs dans certains registres.&lt;br /&gt;
  &lt;br /&gt;
  Le nrÂ° de TRAP qui correspond aux fonctions du BIOS est: TRAP #14&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Je vais maintenant enumâ€šrer et commenter les fonctions du XBIOS qui &lt;br /&gt;
  sont utiles ou intâ€šressantes.(tout comme pour les fonctions du BIOS...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$02 (PHYSBASE),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
PHYSBASE donne dans a0 le dâ€šbut de la mâ€šmoire RAM â€šcran physique.&lt;br /&gt;
&lt;br /&gt;
PHYSBASE  MACRO&lt;br /&gt;
          MOVE      #2,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
$03 (LOGBASE),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
LOGBASE donne dans a0 le dâ€šbut de la mâ€šmoire RAM â€šcran logique.&lt;br /&gt;
&lt;br /&gt;
LOGBASE   MACRO&lt;br /&gt;
          MOVE      #3,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
Pour les fonctions PHYSBASE et LOGBASE, je vous donnerais tous les dâ€štails&lt;br /&gt;
d'utilisation et de fonctionnement dans un programme exemple qui se sert&lt;br /&gt;
de ces 2 fonctions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$04 (GETREZ),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
GETREZ permet d'obtenir dans d0 la râ€šsolution actuelle de l'â€šcran.&lt;br /&gt;
&lt;br /&gt;
0=Basse râ€šsolution (320*200 pixels en 16 couleurs)&lt;br /&gt;
1=Moyenne râ€šsolution (640*200 pixels en 4 couleurs)&lt;br /&gt;
2=Haute râ€šsolution (640*400 pixels en monochrome)&lt;br /&gt;
&lt;br /&gt;
GETREZ    MACRO&lt;br /&gt;
          MOVE      #4,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
$05 (SETSCREEN),MOT=râ€šsolution,L-M=physbase,L-M=logbase&lt;br /&gt;
---&lt;br /&gt;
SETSCREEN permet de modifier la râ€šsolution de l'â€šcran,l'adresse de la &lt;br /&gt;
physbase et l'adresse de la logbase.&lt;br /&gt;
Si un de ces paramÃ¨tre ne doit pas Ã¨tre modifiâ€š, il faut passer le &lt;br /&gt;
paramÃ¨tre -1 Ã  la fonction.&lt;br /&gt;
&lt;br /&gt;
SETSCREEN      MACRO     $\1,$\2,$\3    ;MACRO Ã  3 paramÃ¨tres&lt;br /&gt;
               MOVE      \1,-(SP)       ;\1=REZ&lt;br /&gt;
               MOVE      \2,-(SP)       ;\2=PHYSBASE&lt;br /&gt;
               MOVE      \3,-(SP)       ;\3=LOGBASE&lt;br /&gt;
               MOVE      #5,-(SP)&lt;br /&gt;
               TRAP      #14&lt;br /&gt;
               ADDA.L    #12,SP&lt;br /&gt;
               ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
     SETSCREEN  #1,#-1,#-1&lt;br /&gt;
&lt;br /&gt;
     On passe en moyenne râ€šsolution.&lt;br /&gt;
&lt;br /&gt;
ATTENTION, passer en râ€šsolution infâ€šrieure (par exp. de Moyenne râ€šsolution&lt;br /&gt;
en Basse râ€šsolution) ne permet que de disposer du nombre maximum de coul-&lt;br /&gt;
eurs du mode d'appel.(dans notre exp.,4 couleurs en Basse râ€šsolution...)&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
$06 (SETPALETTE),L-M=adresse de la nouvelle palette&lt;br /&gt;
---&lt;br /&gt;
SETPALETTE permet de changer les couleurs de la palette actuelle avec les&lt;br /&gt;
couleurs qui se trouvent Ã  l'adresse pointâ€še par l'adresse paramÃ¨tre.&lt;br /&gt;
Les valeurs qui dâ€šfinissent les diffâ€šrentes couleurs doivent Ã¨tres des &lt;br /&gt;
MOTS et il doit y en avoir 16.&lt;br /&gt;
Le 1Â° mot dâ€šfinit la couleur 0,le 2Â° mot la couleur 1 etc..&lt;br /&gt;
&lt;br /&gt;
PALETTE   MACRO     $\1       ;MACRO Ã  1 paramÃ¨tre&lt;br /&gt;
          PEA       \1        ;\1=adresse de la nouvelle palette.&lt;br /&gt;
          MOVE      #$6,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #6,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
          PALETTE   couleurs&lt;br /&gt;
&lt;br /&gt;
          DATA&lt;br /&gt;
&lt;br /&gt;
couleurs  DC.W      $000,$077,$070,$700,$234,$123,$700,$444&lt;br /&gt;
          DC.W      $444,$000,$777,$700,$070,$007,$050,$777&lt;br /&gt;
&lt;br /&gt;
NB:Pour dâ€šfinir aisement une couleur on utilise le mode hâ€šxadâ€šcimal:&lt;br /&gt;
-- Le chiffre des centaines reprâ€šsente la quantitâ€š de Rouge (de 0 Ã  7)&lt;br /&gt;
   Le chiffre des dixaines reprâ€šsente la quantitâ€š de Vert (de 0 Ã  7)&lt;br /&gt;
   Le chiffre des unitâ€šs reprâ€šsente la quantitâ€š de Bleu (de 0 Ã  7)&lt;br /&gt;
&lt;br /&gt;
Ainsi: $000=couleur noire&lt;br /&gt;
       $777=couleur blanche&lt;br /&gt;
       $700=couleur Rouge vif &lt;br /&gt;
       $070=couleur Vert clair ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$07 (SETCOLOR),MOT=nouvelle couleur,MOT=nrÂ° de la couleur (0 Ã  15) Ã &lt;br /&gt;
---            changer.&lt;br /&gt;
&lt;br /&gt;
SETCOLOR permet de ne changer qu'une couleur dont on fournit le nrÂ° (de 0&lt;br /&gt;
Ã  15).&lt;br /&gt;
Il faut d'abord fournir Ã  SETCOLOR la valeur que devra prendra la couleur&lt;br /&gt;
Ã  changer.&lt;br /&gt;
&lt;br /&gt;
COLOR     MACRO     $\1,$\2   ;MACRO Ã  2 paramÃ¨tres.&lt;br /&gt;
          MOVE      \1,-(SP)  ;\1=valeur Ã  prendre&lt;br /&gt;
          MOVE      \2,-(SP)  ;\2=nrÂ° de la couleur Ã  changer&lt;br /&gt;
          MOVE      #7,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #6,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
     COLOR     #$777,#1&lt;br /&gt;
&lt;br /&gt;
La couleur nrÂ°1 sera blanche ($777)&lt;br /&gt;
&lt;br /&gt;
$08 (FLOPRD),MOT=nombre de secteurs (1 Ã  9),MOT=face,MOT=nrÂ° piste (0-79 &lt;br /&gt;
---          ou 0-40),MOT=nrÂ° du 1Â° secteur Ã  lire (1-9),MOT=Drive,MOT=0,&lt;br /&gt;
             L-M=adresse du tampon pour dâ€šposer les donnâ€šes.&lt;br /&gt;
&lt;br /&gt;
FLOPRD permet de lire des secteurs sur disquette et dâ€špose les donnâ€šes &lt;br /&gt;
lues dans un tampon.&lt;br /&gt;
&lt;br /&gt;
Les paramÃ¨tres Ã  passer sont:&lt;br /&gt;
&lt;br /&gt;
1Â°:Le nombre de secteurs Ã  lire Ã  la suite dans une piste (de 1 Ã  9)&lt;br /&gt;
2Â°:La face du disk conscernâ€še (0=face A,1=face B pour les doubles faces)&lt;br /&gt;
3Â°:Le nrÂ° de la piste Ã  lire (0 Ã  79 ou 0 Ã  40 suivant le formatage)&lt;br /&gt;
4Â°:Le nrÂ° du 1Â° secteur Ã  lire (de 1 Ã  9)&lt;br /&gt;
5Â°:Le nrÂ° du Drive conscernâ€š (1=A,2=B...)&lt;br /&gt;
6Â°:Un mot=0&lt;br /&gt;
7Â°:L'adresse d'un tampon ou les donnâ€šes seront dâ€šposâ€šes, d'une taille de&lt;br /&gt;
   (512 octets )*( le nombre de secteurs lus )&lt;br /&gt;
   Le tampon doit Ã¨tre situâ€š Ã  une adresse PAIRE.&lt;br /&gt;
&lt;br /&gt;
D0 retourne avec une valeur nulle si tout est OK ou avec les codes &lt;br /&gt;
d'erreur nâ€šgatifs de RWABS.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir quelquechose de valable il faudra bien sur lÃ  aussi mettre&lt;br /&gt;
cette fonction dans une boucle et faire varier les paramÃ¨tres qui doivent&lt;br /&gt;
Ãªtre changâ€šs (nrÂ° secteur...)&lt;br /&gt;
          &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$0A (FLOPFMT),MOT=VIRGIN,L-M=$87654321,MOT=INTERLEAVE,MOT=face,MOT=nrÂ° de&lt;br /&gt;
---           la piste,MOT=nombre de secteurs par piste,MOT=nrÂ° Drive,MOT=&lt;br /&gt;
              0,L-M=adresse d'un tampon d'au moins 8 KO&lt;br /&gt;
&lt;br /&gt;
FLOPFMT permet de formater une disquette, il suffit de passer les para-&lt;br /&gt;
mÃ¨tres suivants Ã  la fonction:&lt;br /&gt;
&lt;br /&gt;
1Â°:Le VIRGIN (c'est la valeur qui sera â€šcrite au cours du formatage)&lt;br /&gt;
   normalement,ce MOT=$E5E5&lt;br /&gt;
2Â°:Un L-M=$87654321 &lt;br /&gt;
3Â°:L'INTERLEAVE qui dâ€štermine l'ordre dans lequel les secteurs sont â€šcrits&lt;br /&gt;
   Normalement ce MOT=1&lt;br /&gt;
4Â°:La face de la disquette Ã  formater (0 ou â€šventuellement 1 pour les D.F)&lt;br /&gt;
5Â°:Le nrÂ° de la piste Ã  formater (0 Ã  79)&lt;br /&gt;
6Â°:Le nombre de secteurs par piste (normalement 9)&lt;br /&gt;
7Â°:Le nrÂ° du Drive conscernâ€š (0=A,1=B...)&lt;br /&gt;
8Â°:Un MOT=0&lt;br /&gt;
9Â°:L'adresse d'un tampon d'au moins 8 KO pour un formatage avec 9 secteurs&lt;br /&gt;
   par piste...&lt;br /&gt;
   Le tampon doit Ãªtre situâ€š Ã  une adresse PAIRE.&lt;br /&gt;
&lt;br /&gt;
D0 revient avec la valeur 0 si tout est OK ou avec un code d'erreur&lt;br /&gt;
nâ€šgatif.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$11 (RANDOM),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
RANDOM donne un nombre alâ€šatoir dans d0.L.&lt;br /&gt;
Les Bits 24 Ã  31 seront toujours nuls dans d0.&lt;br /&gt;
&lt;br /&gt;
RANDOM    MACRO&lt;br /&gt;
          MOVE      #$11,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
NB:Pour Obtenir un nombre alâ€šatoire compris entre 2 valeurs, on peut par&lt;br /&gt;
-- exemple appeller RANDOM et faire un ' AND.L  #max,d0 ' puis un 'ADD.L &lt;br /&gt;
   #min,d0 ' si (max+min) est la valeur maximale et min la valeur mini-&lt;br /&gt;
   male voulue. &lt;br /&gt;
   Le nombre ainsi obtenu sera &amp;lt;=(max+min) et sera &amp;gt;=min.&lt;br /&gt;
&lt;br /&gt;
   C'est bien plus rapide que de faire plusieurs tests,plusieurs appels Ã &lt;br /&gt;
   la fonction RANDOM et des branchements conditionnels...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$14 (SCRDMP),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
SCRDMP permet de faire une HARDCOPY de l'â€šcran actuel sur imprimante.&lt;br /&gt;
&lt;br /&gt;
NB:Ceci s'obtient aussi en pressant [Alternate]+[Help] ...&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
HARDCOPY  MACRO&lt;br /&gt;
          MOVE      #$14,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$16 (SETTIME),L-M=heure et date &lt;br /&gt;
---&lt;br /&gt;
SETTIME permet de modifier l'heure ET la date de l'horloge du bureau GEM.&lt;br /&gt;
&lt;br /&gt;
Le L-M paramÃ¨tre a la configuration suivante:&lt;br /&gt;
&lt;br /&gt;
bits  0- 4:secondes/2&lt;br /&gt;
bits  5-10:minutes&lt;br /&gt;
bits 11-15:heures&lt;br /&gt;
bits 16-20:jour&lt;br /&gt;
bits 21-24:moi&lt;br /&gt;
bits 25-31:(annâ€še-1980)&lt;br /&gt;
&lt;br /&gt;
SETTIME   MACRO     $\1       ;MACRO Ã  1 paramÃ¨tre&lt;br /&gt;
          MOVE.L    \1,-(SP)  ;\1=heure+date&lt;br /&gt;
          MOVE      #$16,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #6,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
     Exemple d'utilisation:&lt;br /&gt;
&lt;br /&gt;
          SETTIME   #%00010000001000010001000000100001&lt;br /&gt;
&lt;br /&gt;
bits  0- 4:%00001*2=2 secondes&lt;br /&gt;
bits  5-10:%000001=1 minutes  &lt;br /&gt;
bits 11-15:%00010=2 heures&lt;br /&gt;
bits 16-20:%00001=1 jour&lt;br /&gt;
bits 21-24:%0001=janvier&lt;br /&gt;
bits 25-31:%0001000=8+1980=1988&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$17 (GETTIME),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
GETTIME retourne dans d0.L l'heure et la date selon le format prâ€šcâ€šdent.&lt;br /&gt;
&lt;br /&gt;
GETTIME   MACRO&lt;br /&gt;
          MOVE      #$17,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$1A (JDSINT),MOT=nrÂ° de l'interruption&lt;br /&gt;
---&lt;br /&gt;
JDSINT permet de bloquer l'interruption du MFP 68901 dont on indique&lt;br /&gt;
le nrÂ°.&lt;br /&gt;
&lt;br /&gt;
Nous utiliserons cette fonction dans le chapitre conscernant les &lt;br /&gt;
interruptions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$1F (XBTIMER),L-M=adresse de la routine,MOT=registre DATA,MOT=registre &lt;br /&gt;
---           CONTROL,MOT=timer (A=0,B=1,C=2,D=3)&lt;br /&gt;
&lt;br /&gt;
XBTIMER permet d'installer un programme sous interruption dans le TIMER &lt;br /&gt;
dont on a indiquâ€š le nrÂ°.&lt;br /&gt;
Il suffit de passer les valeurs des registres DATA et CONTROL ainsi que&lt;br /&gt;
l'adresse du programme Ã  la fonction.&lt;br /&gt;
&lt;br /&gt;
Nous utiliserons XBTIMER quand nous parlerons des programmes sous inter-&lt;br /&gt;
ruption,patience...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$20 (DOSOUND),L-M=adresse des donnâ€šes&lt;br /&gt;
---&lt;br /&gt;
DOSOUND permet de jouer un son dont les donnâ€šes qui le dâ€šfinissent sont&lt;br /&gt;
pointâ€še par l'adresse passâ€še en paramÃ¨tre dans le pile systÃ¨me.&lt;br /&gt;
&lt;br /&gt;
La meilleur maniÃ¨re d'utiliser DOSOUND est de crâ€šer ses sons avec PRO&lt;br /&gt;
SOUND DESIGNER (Editâ€š par TRIANGLE SOFTWARE):&lt;br /&gt;
Il possÃ¨de un â€šditeur qui sauve les sons crâ€šes dans un fichier utilisa-&lt;br /&gt;
ble en assembleur (donnâ€šes DC.B).&lt;br /&gt;
Pour illustrer les capacitâ€šs de DOSOUND, vous trouverez un programme&lt;br /&gt;
nommâ€š SON.PRG (listing=SON.L) sur la disquette.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$23 (KEY RATE),MOT=râ€špâ€štition,MOT=retard&lt;br /&gt;
---&lt;br /&gt;
KEY RATE permet de controler la râ€špâ€štition des touches du clavier, le&lt;br /&gt;
paramÃ¨tre 'râ€špâ€štition' indique le temps qui s'â€šcoule entre 2 râ€špâ€štitions&lt;br /&gt;
de la touche, le paramÃ¨tre 'retard' indique  le temps qui s'â€šcoule avant&lt;br /&gt;
la mise en route de la râ€špâ€štition.&lt;br /&gt;
Les paramÃ¨tre 'râ€špâ€štition' et 'retard' sont exprimâ€šs sous forme de&lt;br /&gt;
multiples de 20 ms.&lt;br /&gt;
&lt;br /&gt;
Si un des 2 paramÃ¨tres vaut -1, il n'est pas modifiâ€š et d0 retourne les&lt;br /&gt;
valeurs actuelles du retard et de la râ€špâ€štition sous cette forme:&lt;br /&gt;
&lt;br /&gt;
Octet de poids faible de d0.W=râ€špâ€štition&lt;br /&gt;
Octet de poids fort de d0.W=retard&lt;br /&gt;
&lt;br /&gt;
KEYRATE   MACRO     $\1,$\2   ;MACRO Ã  2 paramÃ¨tres&lt;br /&gt;
          MOVE      \1,-(SP)  ;\1=râ€špâ€štition&lt;br /&gt;
          MOVE      \2,-(SP)  ;\2=retard&lt;br /&gt;
          MOVE      #$23,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #6,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$25 (VSYNC),pas de paramÃ¨tre&lt;br /&gt;
---&lt;br /&gt;
VSYNC permet de synchroniser certaines â€šditions graphiques en attendant&lt;br /&gt;
la prochaine interruption de trame.&lt;br /&gt;
VSYNC diminue le clignotement de l'â€šcran dans certains cas oâ€” la gestion&lt;br /&gt;
de l'â€šcran est trÃ¨s chargâ€še...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
VSYNC     MACRO&lt;br /&gt;
          MOVE      #$25,-(SP)&lt;br /&gt;
          TRAP      #14&lt;br /&gt;
          ADDQ.L    #2,SP&lt;br /&gt;
          ENDM&lt;br /&gt;
&lt;br /&gt;
$26 (SUPEXEC),L-M=adresse de la routine Ã  executer en mode SUPERviseur&lt;br /&gt;
---&lt;br /&gt;
SUPEXEC permet l'execution d'une routine en mode superviseur, il suffit&lt;br /&gt;
de passer l'adresse de cette routine Ã  SUPEXEC et de terminer la routine&lt;br /&gt;
par RTS.&lt;br /&gt;
&lt;br /&gt;
     Exemple:&lt;br /&gt;
&lt;br /&gt;
     PEA       ici       ;SUPEXEC 'ici'&lt;br /&gt;
     MOVE      #$26,-(SP)&lt;br /&gt;
     TRAP      #14&lt;br /&gt;
     ADDQ.L    #6,SP&lt;br /&gt;
     TERM              ;appel de la macro TERM du gemdos&lt;br /&gt;
&lt;br /&gt;
ici  ANDI.W    #%1111111,SR   ;necessite le MODE SUPERVISEUR&lt;br /&gt;
     RTS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                              -----------------&lt;br /&gt;
&lt;br /&gt;
VoilÃ  pour ce qui est des fonctions du BIOS et de l'XBIOS, maintenant je&lt;br /&gt;
vous conseille trÃ¨s fortement de bien regarder le fichier MACROS.L qui &lt;br /&gt;
contient les diffâ€šrentes macros que nous avons crâ€šâ€š au cours de ces deux&lt;br /&gt;
derniers chapitres.&lt;br /&gt;
Au besoin, notez vous sur une fiche le nom des diffâ€šrentes MACROS et&lt;br /&gt;
leur utilitâ€š.&lt;br /&gt;
&lt;br /&gt;
Quand vous vous sentirez prÃªts plongez dans les exercices, creusez vous&lt;br /&gt;
bien la tÃªte pour chaque â€šxo., passez-y un jour ou deux s'il le faut,&lt;br /&gt;
ce n'est que par un travail individuel que vous pourrez progresser.&lt;br /&gt;
&lt;br /&gt;
Ces exercices ne comportent pas de difficultâ€šs pour ceux qui connaissent&lt;br /&gt;
bien les instructions du 68000 et qui ont bien compris comment utiliser&lt;br /&gt;
les fonctions du GEMDOS,BIOS,XBIOS...&lt;br /&gt;
Utilisez le plus possible les MACROS que nous avons crâ€šes, elle ne sont&lt;br /&gt;
pas lÃ  pour rien...&lt;br /&gt;
&lt;br /&gt;
Si vous Ãªtes sur que votre listing est juste et que malgrâ€š tout il plante,&lt;br /&gt;
vous ne pourrez que vous en prendre Ã  vous mÃªme.&lt;br /&gt;
Il suffit d'une minuscule petite erreur (qui passe souvent inaperâ€¡ue),&lt;br /&gt;
comme mettre un L-M Ã  la place d'un MOT ou faire une erreur dans les&lt;br /&gt;
modes d'adressage pour qu'un listing apparement correct plante Ã  l'â€šxecu-&lt;br /&gt;
tion. (Bien que l'assembleur ne vous indique pas qu'il y a une erreur, il&lt;br /&gt;
est incapable de dâ€šcouvrir ces erreurs lÃ : il ne dâ€štecte que les erreurs&lt;br /&gt;
grossiÃ¨res et les erreurs de syntaxe.) &lt;br /&gt;
&lt;br /&gt;
Il faudra alors aller Ã  la chasse au BUG et ce n'est que si vous rentrez&lt;br /&gt;
bredouille, aprÃ¨s 10 heures d'intense concentration que la correction du&lt;br /&gt;
listing vous sera vraiment utile.&lt;br /&gt;
&lt;br /&gt;
Sachez bien qu'il n'y a pas plus minutieux et plus mâ€šticuleux qu'un bon&lt;br /&gt;
programmeur en assembleur:il ne laissera par le moindre octet trainer&lt;br /&gt;
dans son listing, et il est souvent plus fier de la perfection de son&lt;br /&gt;
listing que du râ€šsultat...&lt;br /&gt;
&lt;br /&gt;
 BONNE CHANCE ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  PIECHOCKI Laurent&lt;br /&gt;
  8,impasse Bellevue                        exercices dans:EXOS_2.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;
&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>