Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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