#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