<?xml version="1.0" encoding="UTF-8" ?>
<!-- RSS generated by PHPBoost on Sun, 24 May 2026 10:48:09 +0200 -->

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Wiki MSX Village]]></title>
		<atom:link href="https://msxvillage.fr/syndication/rss/wiki/22" rel="self" type="application/rss+xml"/>
		<link>https://msxvillage.fr</link>
		<description><![CDATA[Derniers articles de la catégorie U]]></description>
		<copyright>(C) 2005-2026 PHPBoost</copyright>
		<language>fr</language>
		<generator>PHPBoost</generator>
		
		
		<item>
			<title><![CDATA[USR]]></title>
			<link>https://msxvillage.fr/wiki/usr</link>
			<guid>https://msxvillage.fr/wiki/usr</guid>
			<description><![CDATA[<fieldset class="formatter-container formatter-fieldset" style=""><legend><strong><span style="font-size: 20px;">USR</span></strong></legend><div class="formatter-content">Cette fonction appelle la routine en langage machine déclarée par l'instruction <a href="https://msxvillage.fr/wiki/defusr">DEFUSR</a> et renvoie ce qui est entre parenthèse.<br />
<br />
<table class="formatter-table">
    <tr class="formatter-table-row">
        <th class="formatter-table-head">Syntaxe</th>
    </tr>
        <tr class="formatter-table-row">
        <td class="formatter-table-col"><strong>USR</strong>[numéro de routine] <strong>(</strong>constante / variable numérique / variable alphanumérique<strong>)</strong></td>
     </tr>
</table><br />
<br />
Lors de l'appel de la routine, le registre A du CPU contient le type de la variable ou constante mise entre parenthèse. Ceci permet de créer votre propre fonction. Il y a quatre type de valeur possible.<br />
<br />
2 = chiffre entier.<br />
3 = chaine de caractères.<br />
4 = chiffre de simple précision.<br />
8 = un chiffre de double précision.<br />
<br />
Lorsqu'il s'agit d'une valeur numérique, le registre HL indique l'emplacement de cette variable ou constante dont le format varie en fonction du type de valeur.<br />
<br />
Entier :<br />
<table class="formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans HL :</td>
        <td class="formatter-table-col">Inutilisé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans HL + 1 :    </td>
         <td class="formatter-table-col">Inutilisé</td>
       </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans HL + 2 :    </td>
         <td class="formatter-table-col">8 bits de poids faible de la valeur</td>
       </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans HL + 3 :    </td>
         <td class="formatter-table-col">8 bits de poids fort de la valeur</td>
       </tr>
</table><br />
Simple précision :<br />
<table class="formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans HL :</td>
        <td class="formatter-table-col">Valeur au format simple précision (sur 4 octets)</td>
    </tr>
</table><br />
Double précision :<br />
<table class="formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans HL :</td>
        <td class="formatter-table-col">Valeur au format double précision (sur 8 octets)</td>
    </tr>
</table><br />
<br />
Lorsqu'il s'agit d'une chaine de caractères, le pointeur se trouve dans DE au lieu de HL.<br />
<table class="formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans DE :</td>
        <td class="formatter-table-col">Longueur de la chaine</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Adresse contenue dans DE+1 :</td>
        <td class="formatter-table-col">Adresse où se trouve la chaine</td>
    </tr>
</table><br />
<br />
<table class="formatter-table">
    <tr class="formatter-table-row">
        <th class="formatter-table-head">Exemple :</th>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">Faire une routine qui qui transforme tous les caractères majuscules en minuscules dans une chaîne alphanumérique.<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT :</span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">        ORG 0C000H
;
        CP 3
        RET NZ        ; Retour au Basic si ce n'est pas une chaine
;
        LD A,(DE)    ; Longueur de la chaine
        OR A
        RET Z        ; Retour au Basic si longueur = 0
&nbsp;
        LD B,A        ; Nombre de caractères dans B pour DJNZ
CONVC:        INC DE
        LD A,(DE)    ; Prend un caractère dans la chaine
        CP 041H
        JR C,NOCHAR    ; Si A < 041H, ce n'est pas une majuscule
        CP 05AH
        JR NC,NOCHAR    ; Si A > 064H, ce n'est pas une majuscule
        OR 020H        ; Convertie la majuscule en minuscule
        LD (DE),A    ; Place le caractère dans la chaine
NOCHAR:        DJNZ CONVC
        RET        ; retour au Basic</pre></pre></div></div><br />
<br />
Après avoir tapé, assemblé et sauvegardé en binaire cette routine, entrez le programme Basic suivant et faites RUN :<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT :</span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">10 CLS
20 CLEAR 200,&HC000
30 BLOAD”Routine.bin”:DEFUSR=&HC000
40 A$="TRANSFORMATION": A$=USR(A$)
50 PRINT A$</pre></pre></div></div><br />
<br />
</td>
         </tr>
</table><br />
<br />
<br />
<h3 class="formatter-title">Remarque :</h3><br />
<br />
<br />
</div></fieldset>]]></description>
			<pubDate>Tue, 04 Feb 2014 01:38:52 +0100</pubDate>
			
		</item>
		
		<item>
			<title><![CDATA[U]]></title>
			<link>https://msxvillage.fr/wiki/u</link>
			<guid>https://msxvillage.fr/wiki/u</guid>
			<description><![CDATA[Liste des instructions commençant par U :]]></description>
			<pubDate>Tue, 20 Oct 2009 11:01:08 +0200</pubDate>
			
		</item>
		
		<item>
			<title><![CDATA[USING]]></title>
			<link>https://msxvillage.fr/wiki/using</link>
			<guid>https://msxvillage.fr/wiki/using</guid>
			<description><![CDATA[<fieldset class="formatter-container formatter-fieldset" style=""><legend><strong><span style="font-size: 20px;">USING</span></strong></legend><div class="formatter-content">Voir <a href="https://msxvillage.fr/wiki/print">PRINT</a>.</div></fieldset>]]></description>
			<pubDate>Fri, 16 Oct 2009 23:24:19 +0200</pubDate>
			
		</item>
		
	</channel>
</rss>
