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'index tient sur 8 bits | fun[]I |
getlocal | | 08 | 8 | empiler une variable locale, dont l'index au sommet de la pile | fun[]I |
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'égalité des deux valeurs au sommet de la pile | fun[S]S |
ne | | 17 | 23 | test de différence des deux valeurs au sommet de la pile | fun[I I]I |
lt | | 18 | 24 | test d'infériorité des deux valeurs au sommet de la pile | fun[fun[]I]fun[]I |
gt | | 19 | 25 | test de supériorité des deux valeurs au sommet de la pile | fun[]I |
le | | 1A | 26 | test “inférieur ou égal” des deux valeurs au sommet de la pile | fun[I]S |
ge | | 1B | 27 | test “supérieur ou égal” des deux valeurs au sommet de la pile | fun[]I |
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'index est constant et tient sur 8 bits | fun[S]S |
fetch | | 23 | 35 | empile un élément d'un tuple, dont l'index est au sommet de la pile | fun[S]S |
getglobalb | 1 | 24 | 36 | empiler une variable globale, dont l'index tient sur 8 bits | fun[]I |
getglobal | | 25 | 37 | empiler une variable globale, dont l'index au sommet de la pile | fun[]I |
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'index tient sur 8 bits | fun[S]S |
setlocal | | 29 | 41 | écrit une variable locale, dont l'index est dans la pile | fun[S]S |
setglobal | | 2A | 42 | écrit une variable globale | fun[S]S |
setstructb | 1 | 2B | 43 | écrit un élément d'un tuple, dont l'index est constant et tient sur 8 bits | fun[S]S |
setstruct | | 2C | 44 | écrit un élément d'un tuple, dont l'index est donné dans la pile | fun[S]S |
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'index est dans la pile | fun[S]S |
store | | 30 | 48 | écrit un élément d'un tuple, dont l'index est donné dans la pile | fun[I]I |
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'initialisation, taille de la table | fun[u0 I]tab u0 |
fixarg | | 37 | 55 | réglage de l'environnement (limité à 4096 octets) | fun[S]S |
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, dont la taille est passée en argument | fun[I]S |
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, index destination, chaîne source, index source, longeur | fun[S I S I I]S |
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, index, taille ; retourne l'index dans la chaîne (nil si non trouvé) | fun[S I S I I]I |
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é) | fun[S I S I I]I |
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'état du bouton de tête : 0=relâché | fun[]I |
button3 | | 4E | 78 | lecture de l'état de la molette : 0 = position maxi, 255= position butée | fun[]I |
playStart | | 4F | 79 | lancement du player audio : inutilisé, callback de remplissage du buffer audio (paramètre : nombre d'octets attendus) | fun[I fun[I]I]I |
playFeed | | 50 | 80 | remplissage du buffer audio : chaîne, index, taille. Retourne le nombre d'octets copiés dans le buffer | fun[S I I]I |
playStop | | 51 | 81 | arrêt du player audio | fun[]I |
load | | 52 | 82 | lecture de la flash : chaîne destination, index, chaîne source (=“conf.bin”), index source (=0), taille | fun[S I S I I]I |
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, port destinataire, chaîne, index, longueur | fun[I S I S I I]I |
gc | | 57 | 87 | provocation du gc | fun[]I |
tcpOpen | | 58 | 88 | Crée une connexion tcp : ip destinataire, port destinataire ; retourne un id de socket | fun[S I]I |
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, port destinataire, chaîne, index, longueur ; retourne l'index du prochain octet à transmettre | fun[I S I I]I |
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 (=“conf.bin”), index destination (=0), taille | fun[S I S I I]I |
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'environnement | fun[]S |
envset | | 63 | 99 | réglage de l'environnement (limité à 4096 octets) | fun[S]S |
sndVol | | 64 | 100 | définition du volume du player audio | fun[I]I |
rfidGet | | 65 | 101 | lecture du tag rfid : retourne “nil” si aucun, “ERROR” si erreur, id de tag sinon | fun[]S |
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, xxx,xxx | fun[S I I S I I]I |
netState | | 69 | 105 | Retourne l'état de la connexion | fun[]I |
netMac | | 6A | 106 | Retourne l'adresse mac de l'hôte (chaîne de 6 caractères) | fun[]S |
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'authentification : résultat du scan, mode d'authentification, style d'authentification, clef | fun[[S S S I I I I] I I S][S S S I I I I] |
recStart | | 6F | 111 | lancement de l'enregistreur audio : fréquence (8000), gain (0=automatique), callback (paramètre : échantillon enregistré) | fun[I I fun[S]I]I |
recStop | | 70 | 112 | arrêt de l'enregistreur audio | fun[]I |
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'associations | fun[list[u0 u1] u0]u1 |
listswitchstr | | 7D | 125 | Recherche d'une chaîne dans une liste d'associations | fun[list[S u1] S]u1 |
sndRefresh | | 7E | 126 | force l'appel à la routine de gestion du chip audio | fun[]I |
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'état de l'ampli : 1=on, 0=off | fun[I]I |
corePP | | 83 | 131 | Retourne le pointeur de pile | fun[]I |
corePush | | 84 | 132 | Forcer l'empilement d'une valeur | fun[u0]u0 |
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, index destination, chaîne source, index source, longueur | fun[S I S I I]S |
wav2adp | | 8B | 139 | Conversion wav vers adp : chaîne destination, index destination, chaîne source, index source, longueur | fun[S I S I I]S |
alaw2wav | | 8C | 140 | Conversion 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 | | 8D | 141 | Conversion 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 | | 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 |