reg0, reg1 y reg2 son listas de registros, los resultados de operaciones se guardan en reg2
busout comunica con los satelites
flags es una lista de registros para leer información opcional
memscript contiene el código que se va a ejecutar
mempar contiene las variables en parejas nombre-valor
 
Conjunto de instrucciones:

// comentario
@ etiqueta label
nop no ejecuta ninguna operación, a excepción de las operaciones laterales de los parámetros (como por ejemplo core_c+)

flash vaciar todos los casilleros de los tres registros generales
flash0 vaciar todos los casilleros de reg0
flash1 vaciar todos los casilleros de reg1
flash2 vaciar todos los casilleros de reg2
set0 asignar valor al casillero 0
set1 asignar valor al casillero 1
set2 asignar valor al casillero 2
set0+ asignar valores múltiples desde el casillero 0 actual ocupando los siguientes bloques
set1+ asignar valores múltiples desde el casillero 1 actual ocupando los siguientes bloques
set2+ asignar valores múltiples desde el casillero 2 actual ocupando los siguientes bloques
p0 cambiar el número de casillero 0
p1 cambiar el número de casillero 1
p2 cambiar el número de casillero 2
mode0 cambiar el tipo de dato en casillero 0
mode1 cambiar el tipo de dato en casillero 1
mode2 cambiar el tipo de dato en casillero 2
mode cambiar el tipo de datos de los tres registros

cachesave0 guardar todos los casilleros del registro 0 en el bloque caché indicado
cachesave1 guardar todos los casilleros del registro 1 en el bloque caché indicado
cachesave2 guardar todos los casilleros del registro 2 en el bloque caché indicado
cacheload0 recuperar el bloque de caché indicado en el registro 0
cacheload1 recuperar el bloque de caché indicado en el registro 1
cacheload2 recuperar el bloque de caché indicado en el registro 2

parse0 dividir el valor del casillero 0 usando el caracter indicado como separador
parse1 dividir el valor del casillero 1 usando el caracter indicado como separador
parse2 dividir el valor del casillero 2 usando el caracter indicado como separador
explode0 separar cada carácter de texto del registro 0 en un casillero de dicho registro
explode1 separar cada carácter de texto del registro 1 en un casillero de dicho registro
explode2 separar cada carácter de texto del registro 2 en un casillero de dicho registro

tobyte0 transforma todos los casilleros de texto de reg0 en su equivalente en bytes
tobyte1 transforma todos los casilleros de texto de reg1 en su equivalente en bytes
tobyte2 transforma todos los casilleros de texto de reg2 en su equivalente en bytes
todata0 transforma todos los casilleros de bytes de reg0 en su equivalente en texto
todata1 transforma todos los casilleros de bytes de reg1 en su equivalente en texto
todata2 transforma todos los casilleros de bytes de reg2 en su equivalente en texto

input para la ejecución hasta que el usuario introduzca datos
busout envía la pareja de datos indicada a través del bus requerido
set asigna valor a una palabra clave en la memoria de pares o crea una nueva
get sitúa en reg2 el valor de la palabra clave requerida
set+ guarda como lista todos los valores indicados en los parámetros
get+ recupera todos los valores de la lista indicada en reg2 
unset elimina la palabra clave indicada y su valor de la memoria de pares
debug escribe el texto indicado en la consola de debug

jump salta hasta la etiqueta indicada
jif_match salta hasta la etiqueta indicada si reg0 es igual a reg1
jif_max salta hasta la etiqueta indicada si reg0 es mayor que reg1
jif_less salta hasta la etiqueta indicada si reg0 es menor que reg1
jif salta hasta la etiqueta indicada si reg0 es igual que el valor true o 1
call llama al procedimiento de usuario indicado
return termina el procedimiento de usuario actual y vuelve al lugar desde el que fue llamado
hardstop para definitivamente la ejecución de la máquina
pause para la ejecución de la máquina hasta recibir la señal de control run

while inicia el modo bucle mientras la variable introducida sea true booleano
loop indica el final de un bucle while, saltará hasta el inicio solo si se cumple la condición
foreach inicia el modo bucle para cada uno de los casilleros de reg0
next pasa al siguiente casillero de reg0 para continuar con el bucle

suma suma reg1 a reg0 y lo guarda en reg2, si uno de los dos registros es str concatenará en lugar de sumar
resta resta reg1 a reg0 y lo guarda en reg2
mult multiplica reg0 y reg1 y lo guarda en reg2
div divide reg0 entre reg1 y lo guarda en reg2
rand genera un número aleatorio comprendido entre reg0 y reg1

and efectua la operación boleana and sobre reg0 y reg1 y guarda el resultado en reg2
or efectua la operación boleana or sobre reg0 y reg1 y guarda el resultado en reg2
not guarda en reg2 el valor boleano contrario a reg1

// :: obsoleto :: //
setc definir el valor numérico del contador
csum sumar el valor al contador
csub restar el valor del contador
minc definir valor mínimo del contador en modo loop
maxc definir valor máximo del contador en modo loop
loopc activar (1) o desactivar (0) el contador en modo loop
// :: obsoleto :: //
 
Frame.hax es un archivo pensado para ser cargado a la memoria de haxbox justo al iniciar. Debería incluir los procedimientos más usados escritos en jenoassembler-hax para que cualquiera de nuestros programas pueda usarlos. Se aconseja mucho el uso de éstas funciones con su mismo nombre si se quiere mantener compatibilidad con los códigos de este sitio. Éste es el frame.hax hoy día.

// frame.hax para haxbox 0.05
busout 8,start
call frame.print,#*********************************** /n
call frame.print,#****  maquina virtual haxbox.  **** /n
call frame.print,#*********************************** /n /n
call frame.print,#2012 abdlab software/n/n/n/n
set #_%ilasmexe%_,#C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe 
jump @ haxbox_frame_fin

// :: haxboxframework V.1.0 ::

proc frame.print
busout #3,f!1
busout #3,/n
return

proc frame.printinln
busout #3,f!1
return

proc frame.printlst
get+ f!1
set0+ core_reg2
foreach
call frame.print,core_reg0
next
return

proc frame.prompt
busout #3,f!1
busout #3,/n
input
busout #3,core_reg2
busout #3,/n
return core_reg2

proc frame.rand
set #_nums0,f!1
set #_nums1,f!2
mode int
set0 _nums0
set1 _nums1
rand
set #?return,core_reg2
mode str
return core_reg2

proc frame.il.make
set #_tmp,f!1
call frame.concat,#_%ilasmexe%_,_tmp
call frame.shell,core_reg2
return f!0

proc frame.shell
busout #10,f!1
return f!0

proc frame.web
busout #12,f!1
return f!0

proc frame.telnet
busout #11,f!1,f!2
return f!0

proc frame.nav.open
set _tmp,f!1
call frame.concat,#start ,_tmp
busout #10,core_reg2
return

proc frame.savefile
busout #5,f!1,f!2
return

proc frame.readfile
busout #6,f!1
return f!0

proc frame.concat
mode str
set0 f!1
set1 f!2
suma
return core_reg2

proc frame.file.del
mode str
set0 #del 
set1 f!1
suma
busout #10,core_reg2
return

proc frame.bytecrypt
set0 f!1
explode0
tobyte0
join0 #x
return core_reg0

proc frame.bytedecrypt
set0 f!1
parse0 #x
todata0
set0 core_dump0
return core_reg0

proc frame.crypt
set #_pass,f!2
set0 f!1
explode0
tobyte0
set #_nums0,core_num0
set #_nums1,_nums0
join0 #x
return core_reg0

proc frame.decrypt
set0 f!1
parse0 #x
todata0
set0 core_dump0
return core_reg0

@ haxbox_frame_fin
call frame.print,#$cls

Abdab software