User Tools

Site Tools


dev:nab:v2:opcodes

This is an old revision of the document!


#Opcodes

Instruction hexdecCommentaireSignature exec 000Appel d'une procédurefun[S]S ret 011Retourfun[S I]I intb1022push bytefun[u0]u0 int4033push integerfun[u0]u0 nil 044push nil (0xffffffff)fun[]I drop 055drop top of stackfun[I]S dup 066duplicate top of stackfun[I]S getlocalb1077empiler une variable locale, dont l'index tient sur 8 bitsfun[]I getlocal 088empiler une variable locale, dont l'index au sommet de la pilefun[]I add 099ajouter les deux valeurs au sommet de la pilefun[I]I sub 0A10soustraire les deux valeurs au sommet de la pilefun[S I I]S mul 0B11multiplier les deux valeurs au sommet de la pilefun[I I]I div 0C12diviser les deux valeurs au sommet de la pilefun[I]S mod 0D13modulo des deux valeurs au sommet de la pilefun[I I]I and 0E14ET logique entre les bits des deux valeurs au sommet de la pilefun[S I S I I I]S or 0F15OU logique entre les bits des deux valeurs au sommet de la pilefun[]I eor 1016OU EXCLUSIF logique entre les bits des deux valeurs au sommet de la pilefun[S]S shl 1117décalage vers la gauchefun[S]S shr 1218décalage vers la droitefun[S]S neg 1319changement de signe de la valeur au sommet de la pilefun[I I]I not 1420inversion des bits de la valeur au sommet de la pilefun[]I non 1521inversion booléennefun[]I eq 1622test d'égalité des deux valeurs au sommet de la pilefun[S]S ne 1723test de différence des deux valeurs au sommet de la pilefun[I I]I lt 1824test d'infériorité des deux valeurs au sommet de la pilefun[fun[]I]fun[]I gt 1925test de supériorité des deux valeurs au sommet de la pilefun[]I le 1A26test “inférieur ou égal” des deux valeurs au sommet de la pilefun[I]S ge 1B27test “supérieur ou égal” des deux valeurs au sommet de la pilefun[]I goto21C28déplacement du pointeur programmefun[]I else21D29déplacement conditionnel du pointeur programme en fonction de la valeur au sommet de la pilefun[I]S mktabb11E30crée une table dont la taille est constante et tient sur 8 bitsfun[I I]I mktab 1F31crée une table dont la taille est au sommet de la pilefun[I I]I deftabb12032crée une table dont la taille est constante et tient sur 8 bits, en initialisant les valeurs à partir de la pilefun[I]S deftab 2133crée une table dont la taille est au sommet de la pile, en initialisant les valeurs à partir de la pilefun[I]S fetchb12234empile un élément d'un tuple, dont l'index est constant et tient sur 8 bitsfun[S]S fetch 2335empile un élément d'un tuple, dont l'index est au sommet de la pilefun[S]S getglobalb12436empiler une variable globale, dont l'index tient sur 8 bitsfun[]I getglobal 2537empiler une variable globale, dont l'index au sommet de la pilefun[]I Secho 2638affichage d'une chaîne de caractères sur la sortie standardfun[S]S Iecho 2739affichage d'un entier en décimal sur la sortie standardfun[u0]u0 setlocalb12840écrit une variable locale, dont l'index tient sur 8 bitsfun[S]S setlocal 2941écrit une variable locale, dont l'index est dans la pilefun[S]S setglobal 2A42écrit une variable globalefun[S]S setstructb12B43écrit un élément d'un tuple, dont l'index est constant et tient sur 8 bitsfun[S]S setstruct 2C44écrit un élément d'un tuple, dont l'index est donné dans la pilefun[S]S hd 2D45premier élément d'une listefun[list u0]u0 tl 2E46liste privée de son premier élémentfun[list u0]list u0 setlocal2 2F47écrit une variable locale, dont l'index est dans la pilefun[S]S store 3048écrit un élément d'un tuple, dont l'index est donné dans la pilefun[I]I call 3149call subroutinefun[S]S callrb13250call subroutinefun[S]S callr 3351call subroutinefun[S]S first 3452empile le premier élément d'un tuplefun[S]S time_ms 3553heure en millisecondesfun[]I tabnew 3654création d'une table : valeur d'initialisation, taille de la tablefun[u0 I]tab u0 fixarg 3755réglage de l'environnement (limité à 4096 octets)fun[S]S abs 3856valeur absoluefun[I]I max 3957maximumfun[I I]I min 3A58minimumfun[I I]I rand 3B59nombre aléatoire sur 16 bitsfun[]I srand 3C60définition de la graine du générateur aléatoirefun[I]I time 3D61heure en secondesfun[]I strnew 3E62création d'une nouvelle chaîne de caractères, dont la taille est passée en argumentfun[I]S strset 3F63changement d'un caractère d'une chaîne : chaine, index, valeurfun[S I I]S strcpy 4064copie d'une sous-chaîne de caractère : chaîne destination, index destination, chaîne source, index source, longeurfun[S I S I I]S strcmp 4165Comparaison de deux chaînes de caractèresfun[S S]I strfind 4266recherche 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é)fun[S I S I I]I strfindrev 4367recherche 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é)fun[S I S I I]I strlen 4468taille d'une chaîne de caractèresfun[S]I strget 4569retourne le n-ième caractères d'une chaîne (entier entre 0 et 255)fun[S I]I strsub 4670calcul d'une sous-chaîne : chaîne source, index source, taillefun[S I I]S strcat 4771concaténation de deux chaînesfun[S S]S tablen 4872taille d'une tablefun[tab u0]I strcatlist 4973concaténation d'une liste de chaînesfun[list S]S led 4A74définition de la couleur d'une led : numéro de la led, couleur rgb 24 bitsfun[I I]I motorset 4B75réglage d'un moteur : index moteur, directionfun[I I]I motorget 4C76lecture de la position d'un moteur : index moteurfun[I]I button2 4D77lecture de l'état du bouton de tête : 0=relâchéfun[]I button3 4E78lecture de l'état de la molette : 0 = position maxi, 255= position butéefun[]I playStart 4F79lancement du player audio : inutilisé, callback de remplissage du buffer audio (paramètre : nombre d'octets attendus)fun[I fun[I]I]I playFeed 5080remplissage du buffer audio : chaîne, index, taille. Retourne le nombre d'octets copiés dans le bufferfun[S I I]I playStop 5181arrêt du player audiofun[]I load 5282lecture de la flash : chaîne destination, index, chaîne source (=“conf.bin”), index source (=0), taillefun[S I S I I]I udpStart 5383Démarre un serveur udp : port udp ; retourne un id de socketfun[I]I udpCb 5484Définit la callback udp, dont les arguments sont : id de socket, trame reçue, ip émetteurfun[fun[I S S]I]fun[I S S]I udpStop 5585Stoppe un serveur udp : port udpfun[I]I udpSend 5686Envoi d'une trame udp : id de socket, ip destinataire, port destinataire, chaîne, index, longueurfun[I S I S I I]I gc 5787provocation du gcfun[]I tcpOpen 5888Crée une connexion tcp : ip destinataire, port destinataire ; retourne un id de socketfun[S I]I tcpClose 5989Ferme une connexion tcp : id de socketfun[I]I tcpSend 5A90Envoi d'une trame tcp : id de socket, ip destinataire, port destinataire, chaîne, index, longueur ; retourne l'index du prochain octet à transmettrefun[I S I I]I tcpCb 5B91Dé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çuefun[fun[I I S]I]fun[I I S]I save 5C92sauvegarde dans la flash : chaîne source, index source, chaîne destination (=“conf.bin”), index destination (=0), taillefun[S I S I I]I bytecode 5D93chargement d'un nouveau bytecodefun[S]S loopcb 5E94définition de la callback principale (appelée 20 fois par seconde)fun[fun[]I]fun[]I Iecholn 5F95affichage d'un entier en décimal sur la sortie standard, suivie d'un retour à la lignefun[u0]u0 Secholn 6096affichage d'une chaîne de caractères sur la sortie standard, suivie d'un retour à la lignefun[S]S tcpListen 6197Démarre un serveur tcp : port tcp ; retourne un id de socketfun[I]I envget 6298lecture de l'environnementfun[]S envset 6399réglage de l'environnement (limité à 4096 octets)fun[S]S sndVol 64100définition du volume du player audiofun[I]I rfidGet 65101lecture du tag rfid : retourne “nil” si aucun, “ERROR” si erreur, id de tag sinonfun[]S playTime 66102retourne le temps de décodagefun[]I netCb 67103Définition de la callback réseau, dont les arguments sont : trame, mac émetteurfun[fun[S S]I]fun[S S]I netSend 68104Envoi d'une trame réseau : chaîne source, index, taille, mac destination, xxx,xxxfun[S I I S I I]I netState 69105Retourne l'état de la connexionfun[]I netMac 6A106Retourne l'adresse mac de l'hôte (chaîne de 6 caractères)fun[]S netChk 6B107Calcul le checksum IP : chaîne, index, taille, checksum de départfun[S I I I]I netSetmode 6C108Demande la passage dans un mode réseau particulierfun[I S I]I netScan 6D109Effectue 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 6E110Procédure d'authentification : résultat du scan, mode d'authentification, style d'authentification, cleffun[[S S S I I I I] I I S][S S S I I I I] recStart 6F111lancement de l'enregistreur audio : fréquence (8000), gain (0=automatique), callback (paramètre : échantillon enregistré)fun[I I fun[S]I]I recStop 70112arrêt de l'enregistreur audiofun[]I recVol 71113calcul du volume : chaîne, indexfun[S I]I netSeqAdd 72114Mise à jour d'un numéro de séquence TCP : numéro initial, taille paquetfun[S I]S strgetword 73115Lit un mot 16 bits dans un header IP : chaîne source, indexfun[S I]I strputword 74116Ecrit un mot 16 bits dans un header IP : chaîne source, index, valeurfun[S I I]S atoi 75117Conversion d'une chaîne en base 10 vers un entierfun[S]I htoi 76118Conversion d'une chaîne hexadécimale vers un entierfun[S]I itoa 77119Conversion d'un entier vers une chaîne en base 10fun[I]S ctoa 78120Conversion d'un code ascii vers une chaîne d'un seul caractèrefun[I]S itoh 79121Conversion d'un entier vers une chaîne en hexadécimalfun[I]S ctoh 7A122Conversion d'un caractère vers une chaîne en hexadécimal de taille 2fun[I]S itobin2 7B123Conversion d'un entier vers une chaîne de deux caractèresfun[I]S listswitch 7C124Recherche d'un élément quelconque dans une liste d'associationsfun[list[u0 u1] u0]u1 listswitchstr 7D125Recherche d'une chaîne dans une liste d'associationsfun[list[S u1] S]u1 sndRefresh 7E126force l'appel à la routine de gestion du chip audiofun[]I sndWrite 7F127Ecrit un registre du chip audio : numéro de registre, valeurfun[I I]I sndRead 80128Lit un registre du chip audio : numéro de registrefun[I]I sndFeed 81129Ecrit directement dans le buffer du chip audio : chaîne, index, taillefun[S I I]I sndAmpli 82130Définit l'état de l'ampli : 1=on, 0=offfun[I]I corePP 83131Retourne le pointeur de pilefun[]I corePush 84132Forcer l'empilement d'une valeurfun[u0]u0 corePull 85133Forcer le dépilement d'une valeurfun[I]I coreBit0 86134Modifie le bit 0 de la valeur située au sommet de la pilefun[u0 I]u0 tcpEnable 87135Place une socket tcp en pause : id de socket, mode (1=pause, 0=normal)fun[I I]I reboot 88136Force le reboot : deux valeurs magic 0x0407FE58 0x13fb6754fun[I I]I strcmp 89137Comparaison de deux chaînes de caractèresfun[S S]I adp2wav 8A138Conversion adp vers wav : chaîne destination, index destination, chaîne source, index source, longueurfun[S I S I I]S wav2adp 8B139Conversion wav vers adp : chaîne destination, index destination, chaîne source, index source, longueurfun[S I S I I]S alaw2wav 8C140Conversion alaw/mulaw vers wav : chaîne destination, index destination, chaîne source, index source, longueur, type (xxx)fun[S I S I I I]S wav2alaw 8D141Conversion alaw/mulaw vers wav : chaîne destination, index destination, chaîne source, index source, longueur, type (xxx)fun[S I S I I I]S netPmk 8E142Calcul de la clef Pmk (Wpa) : ssid, clef wpafun[S S]S flashFirmware 8F143Flashage du firmware : chaîne, deux valeurs magic 0x13fb6754 0x0407FE58fun[S I I]I crypt 90144Cryptage simple : chaîne, index, taille, clef, delta ; retourne la nouvelle cleffun[S I I I I]I uncrypt 91145Décryptage simple : chaîne, index, taille, clef, delta ; retourne la nouvelle cleffun[S I I I I]I netRssi 92146Retourne le Rssi moyen (puissance de réception)fun[]I rfidGetList 93147lecture d'une liste de tags rfidfun[] list S rfidRead 94148lecture 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 95149é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 okfun[S I S]I
/home/share/www/redox.ws/wiki/data/attic/dev/nab/v2/opcodes.1700864559.txt.gz · Last modified: 2023/11/24 22:22 by redox