Differences
This shows you the differences between two versions of the page.
opcodes [2011/04/08 17:31] alexis |
opcodes [2019/08/25 13:56] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ^Instruction^ ^hex^dec^Commentaire^Signature^ | ||
- | |exec| |00|0|Appel d'une procédure|fun[S]S| | ||
- | |ret| |01|1|Retour|fun[S I]I| | ||
- | |intb|1|02|2|push byte|fun[u0]u0| | ||
- | |int|4|03|3|push integer|fun[u0]u0| | ||
- | |nil| |04|4|push nil (0xffffffff)|fun[]I| | ||
- | |drop| |05|5|drop top of stack|fun[I]S| | ||
- | |dup| |06|6|duplicate top of stack|fun[I]S| | ||
- | |getlocalb|1|07|7|empiler une variable locale, dont l' | ||
- | |getlocal| |08|8|empiler une variable locale, dont l' | ||
- | |add| |09|9|ajouter les deux valeurs au sommet de la pile|fun[I]I| | ||
- | |sub| |0A|10|soustraire les deux valeurs au sommet de la pile|fun[S I I]S| | ||
- | |mul| |0B|11|multiplier les deux valeurs au sommet de la pile|fun[I I]I| | ||
- | |div| |0C|12|diviser les deux valeurs au sommet de la pile|fun[I]S| | ||
- | |mod| |0D|13|modulo des deux valeurs au sommet de la pile|fun[I I]I| | ||
- | |and| |0E|14|ET logique entre les bits des deux valeurs au sommet de la pile|fun[S I S I I I]S| | ||
- | |or| |0F|15|OU logique entre les bits des deux valeurs au sommet de la pile|fun[]I| | ||
- | |eor| |10|16|OU EXCLUSIF logique entre les bits des deux valeurs au sommet de la pile|fun[S]S| | ||
- | |shl| |11|17|décalage vers la gauche|fun[S]S| | ||
- | |shr| |12|18|décalage vers la droite|fun[S]S| | ||
- | |neg| |13|19|changement de signe de la valeur au sommet de la pile|fun[I I]I| | ||
- | |not| |14|20|inversion des bits de la valeur au sommet de la pile|fun[]I| | ||
- | |non| |15|21|inversion booléenne|fun[]I| | ||
- | |eq| |16|22|test d' | ||
- | |ne| |17|23|test de différence des deux valeurs au sommet de la pile|fun[I I]I| | ||
- | |lt| |18|24|test d' | ||
- | |gt| |19|25|test de supériorité des deux valeurs au sommet de la pile|fun[]I| | ||
- | |le| |1A|26|test " | ||
- | |ge| |1B|27|test " | ||
- | |goto|2|1C|28|déplacement du pointeur programme|fun[]I| | ||
- | |else|2|1D|29|déplacement conditionnel du pointeur programme en fonction de la valeur au sommet de la pile|fun[I]S| | ||
- | |mktabb|1|1E|30|crée une table dont la taille est constante et tient sur 8 bits|fun[I I]I| | ||
- | |mktab| |1F|31|crée une table dont la taille est au sommet de la pile|fun[I I]I| | ||
- | |deftabb|1|20|32|crée une table dont la taille est constante et tient sur 8 bits, en initialisant les valeurs à partir de la pile|fun[I]S| | ||
- | |deftab| |21|33|crée une table dont la taille est au sommet de la pile, en initialisant les valeurs à partir de la pile|fun[I]S| | ||
- | |fetchb|1|22|34|empile un élément d'un tuple, dont l' | ||
- | |fetch| |23|35|empile un élément d'un tuple, dont l' | ||
- | |getglobalb|1|24|36|empiler une variable globale, dont l' | ||
- | |getglobal| |25|37|empiler une variable globale, dont l' | ||
- | |Secho| |26|38|affichage d'une chaîne de caractères sur la sortie standard|fun[S]S| | ||
- | |Iecho| |27|39|affichage d'un entier en décimal sur la sortie standard|fun[u0]u0| | ||
- | |setlocalb|1|28|40|écrit une variable locale, dont l' | ||
- | |setlocal| |29|41|écrit une variable locale, dont l' | ||
- | |setglobal| |2A|42|écrit une variable globale|fun[S]S| | ||
- | |setstructb|1|2B|43|écrit un élément d'un tuple, dont l' | ||
- | |setstruct| |2C|44|écrit un élément d'un tuple, dont l' | ||
- | |hd| |2D|45|premier élément d'une liste|fun[list u0]u0| | ||
- | |tl| |2E|46|liste privée de son premier élément|fun[list u0]list u0| | ||
- | |setlocal2| |2F|47|écrit une variable locale, dont l' | ||
- | |store| |30|48|écrit un élément d'un tuple, dont l' | ||
- | |call| |31|49|call subroutine|fun[S]S| | ||
- | |callrb|1|32|50|call subroutine|fun[S]S| | ||
- | |callr| |33|51|call subroutine|fun[S]S| | ||
- | |first| |34|52|empile le premier élément d'un tuple|fun[S]S| | ||
- | |time_ms| |35|53|heure en millisecondes|fun[]I| | ||
- | |tabnew| |36|54|création d'une table : valeur d' | ||
- | |fixarg| |37|55|réglage de l' | ||
- | |abs| |38|56|valeur absolue|fun[I]I| | ||
- | |max| |39|57|maximum|fun[I I]I| | ||
- | |min| |3A|58|minimum|fun[I I]I| | ||
- | |rand| |3B|59|nombre aléatoire sur 16 bits|fun[]I| | ||
- | |srand| |3C|60|définition de la graine du générateur aléatoire|fun[I]I| | ||
- | |time| |3D|61|heure en secondes|fun[]I| | ||
- | |strnew| |3E|62|création d'une nouvelle chaîne de caractères, | ||
- | |strset| |3F|63|changement d'un caractère d'une chaîne : chaine, index, valeur|fun[S I I]S| | ||
- | |strcpy| |40|64|copie d'une sous-chaîne de caractère : chaîne destination, | ||
- | |strcmp| |41|65|Comparaison de deux chaînes de caractères|fun[S S]I| | ||
- | |strfind| |42|66|recherche d'une sous-chaîne dans une chaîne : chaîne, index, sous-chaîne, | ||
- | |strfindrev| |43|67|recherche inversée d'une sous-chaîne dans une chaîne : chaîne, index, sous-chaîne, | ||
- | |strlen| |44|68|taille d'une chaîne de caractères|fun[S]I| | ||
- | |strget| |45|69|retourne le n-ième caractères d'une chaîne (entier entre 0 et 255)|fun[S I]I| | ||
- | |strsub| |46|70|calcul d'une sous-chaîne : chaîne source, index source, taille|fun[S I I]S| | ||
- | |strcat| |47|71|concaténation de deux chaînes|fun[S S]S| | ||
- | |tablen| |48|72|taille d'une table|fun[tab u0]I| | ||
- | |strcatlist| |49|73|concaténation d'une liste de chaînes|fun[list S]S| | ||
- | |led| |4A|74|définition de la couleur d'une led : numéro de la led, couleur rgb 24 bits|fun[I I]I| | ||
- | |motorset| |4B|75|réglage d'un moteur : index moteur, direction|fun[I I]I| | ||
- | |motorget| |4C|76|lecture de la position d'un moteur : index moteur|fun[I]I| | ||
- | |button2| |4D|77|lecture de l' | ||
- | |button3| |4E|78|lecture de l' | ||
- | |playStart| |4F|79|lancement du player audio : inutilisé, callback de remplissage du buffer audio (paramètre : nombre d' | ||
- | |playFeed| |50|80|remplissage du buffer audio : chaîne, index, taille. Retourne le nombre d' | ||
- | |playStop| |51|81|arrêt du player audio|fun[]I| | ||
- | |load| |52|82|lecture de la flash : chaîne destination, | ||
- | |udpStart| |53|83|Démarre un serveur udp : port udp ; retourne un id de socket|fun[I]I| | ||
- | |udpCb| |54|84|Définit la callback udp, dont les arguments sont : id de socket, trame reçue, ip émetteur|fun[fun[I S S]I]fun[I S S]I| | ||
- | |udpStop| |55|85|Stoppe un serveur udp : port udp|fun[I]I| | ||
- | |udpSend| |56|86|Envoi d'une trame udp : id de socket, ip destinataire, | ||
- | |gc| |57|87|provocation du gc|fun[]I| | ||
- | |tcpOpen| |58|88|Crée une connexion tcp : ip destinataire, | ||
- | |tcpClose| |59|89|Ferme une connexion tcp : id de socket|fun[I]I| | ||
- | |tcpSend| |5A|90|Envoi d'une trame tcp : id de socket, ip destinataire, | ||
- | |tcpCb| |5B|91|Définit la callback tcp, dont les arguments sont : id de socket, événement(-1 : erreur/fin, 2 : accept (dans ce cas, le troisième argument est l'id de la nouvelle socket), 0 : write, 1 : read), trame reçue|fun[fun[I I S]I]fun[I I S]I| | ||
- | |save| |5C|92|sauvegarde dans la flash : chaîne source, index source, chaîne destination (=" | ||
- | |bytecode| |5D|93|chargement d'un nouveau bytecode|fun[S]S| | ||
- | |loopcb| |5E|94|définition de la callback principale (appelée 20 fois par seconde)|fun[fun[]I]fun[]I| | ||
- | |Iecholn| |5F|95|affichage d'un entier en décimal sur la sortie standard, suivie d'un retour à la ligne|fun[u0]u0| | ||
- | |Secholn| |60|96|affichage d'une chaîne de caractères sur la sortie standard, suivie d'un retour à la ligne|fun[S]S| | ||
- | |tcpListen| |61|97|Démarre un serveur tcp : port tcp ; retourne un id de socket|fun[I]I| | ||
- | |envget| |62|98|lecture de l' | ||
- | |envset| |63|99|réglage de l' | ||
- | |sndVol| |64|100|définition du volume du player audio|fun[I]I| | ||
- | |rfidGet| |65|101|lecture du tag rfid : retourne " | ||
- | |playTime| |66|102|retourne le temps de décodage|fun[]I| | ||
- | |netCb| |67|103|Définition de la callback réseau, dont les arguments sont : trame, mac émetteur|fun[fun[S S]I]fun[S S]I| | ||
- | |netSend| |68|104|Envoi d'une trame réseau : chaîne source, index, taille, mac destination, | ||
- | |netState| |69|105|Retourne l' | ||
- | |netMac| |6A|106|Retourne l' | ||
- | |netChk| |6B|107|Calcul le checksum IP : chaîne, index, taille, checksum de départ|fun[S I I I]I| | ||
- | |netSetmode| |6C|108|Demande la passage dans un mode réseau particulier|fun[I S I]I| | ||
- | |netScan| |6D|109|Effectue un scan réseau : SSID cherché (nil : tous) ; retourne une liste [ssid mac bssid rssi channel rateset encryption]|fun[S]list[S S S I I I I]| | ||
- | |netAuth| |6E|110|Procédure d' | ||
- | |recStart| |6F|111|lancement de l' | ||
- | |recStop| |70|112|arrêt de l' | ||
- | |recVol| |71|113|calcul du volume : chaîne, index|fun[S I]I| | ||
- | |netSeqAdd| |72|114|Mise à jour d'un numéro de séquence TCP : numéro initial, taille paquet|fun[S I]S| | ||
- | |strgetword| |73|115|Lit un mot 16 bits dans un header IP : chaîne source, index|fun[S I]I| | ||
- | |strputword| |74|116|Ecrit un mot 16 bits dans un header IP : chaîne source, index, valeur|fun[S I I]S| | ||
- | |atoi| |75|117|Conversion d'une chaîne en base 10 vers un entier|fun[S]I| | ||
- | |htoi| |76|118|Conversion d'une chaîne hexadécimale vers un entier|fun[S]I| | ||
- | |itoa| |77|119|Conversion d'un entier vers une chaîne en base 10|fun[I]S| | ||
- | |ctoa| |78|120|Conversion d'un code ascii vers une chaîne d'un seul caractère|fun[I]S| | ||
- | |itoh| |79|121|Conversion d'un entier vers une chaîne en hexadécimal|fun[I]S| | ||
- | |ctoh| |7A|122|Conversion d'un caractère vers une chaîne en hexadécimal de taille 2|fun[I]S| | ||
- | |itobin2| |7B|123|Conversion d'un entier vers une chaîne de deux caractères|fun[I]S| | ||
- | |listswitch| |7C|124|Recherche d'un élément quelconque dans une liste d' | ||
- | |listswitchstr| |7D|125|Recherche d'une chaîne dans une liste d' | ||
- | |sndRefresh| |7E|126|force l' | ||
- | |sndWrite| |7F|127|Ecrit un registre du chip audio : numéro de registre, valeur|fun[I I]I| | ||
- | |sndRead| |80|128|Lit un registre du chip audio : numéro de registre|fun[I]I| | ||
- | |sndFeed| |81|129|Ecrit directement dans le buffer du chip audio : chaîne, index, taille|fun[S I I]I| | ||
- | |sndAmpli| |82|130|Définit l' | ||
- | |corePP| |83|131|Retourne le pointeur de pile|fun[]I| | ||
- | |corePush| |84|132|Forcer l' | ||
- | |corePull| |85|133|Forcer le dépilement d'une valeur|fun[I]I| | ||
- | |coreBit0| |86|134|Modifie le bit 0 de la valeur située au sommet de la pile|fun[u0 I]u0| | ||
- | |tcpEnable| |87|135|Place une socket tcp en pause : id de socket, mode (1=pause, 0=normal)|fun[I I]I| | ||
- | |reboot| |88|136|Force le reboot : deux valeurs magic 0x0407FE58 0x13fb6754|fun[I I]I| | ||
- | |strcmp| |89|137|Comparaison de deux chaînes de caractères|fun[S S]I| | ||
- | |adp2wav| |8A|138|Conversion adp vers wav : chaîne destination, | ||
- | |wav2adp| |8B|139|Conversion wav vers adp : chaîne destination, | ||
- | |alaw2wav| |8C|140|Conversion alaw/mulaw vers wav : chaîne destination, | ||
- | |wav2alaw| |8D|141|Conversion alaw/mulaw vers wav : chaîne destination, | ||
- | |netPmk| |8E|142|Calcul de la clef Pmk (Wpa) : ssid, clef wpa|fun[S S]S| | ||
- | |flashFirmware| |8F|143|Flashage du firmware : chaîne, deux valeurs magic 0x13fb6754 0x0407FE58|fun[S I I]I| | ||
- | |crypt| |90|144|Cryptage simple : chaîne, index, taille, clef, delta ; retourne la nouvelle clef|fun[S I I I I]I| | ||
- | |uncrypt| |91|145|Décryptage simple : chaîne, index, taille, clef, delta ; retourne la nouvelle clef|fun[S I I I I]I| | ||
- | |netRssi| |92|146|Retourne le Rssi moyen (puissance de réception)|fun[]I| | ||
- | |rfidGetList| |93|147|lecture d'une liste de tags rfid|fun[] list S| | ||
- | |rfidRead| |94|148|lecture d'un bloc de données d'un tag : id du tag, numéro du bloc ; retourne les données (chaîne de 4 octets binaires)|fun[S I]S| | ||
- | |rfidWrite| |95|149|écriture d'un bloc de données d'un tag : id du tag, numéro du bloc, donnée à écrire (chaîne de 4 octets) ; retourne 0 si ok|fun[S I S]I| | ||