Skip to main content

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

Repiola 0.1

Despues de 2 dias de desarrollo sale a la luz repiola 0.1 en version desktop y mobile.

screenshot del caso:




eso es en emulacion, lo instale en mi celular (un misero alcatel 701a) y anda como piña, el unico drawback es que anda un poco lento la ejecucion, pero eso es porque no tengo en cuenta ninguna optimizacion, por ejemplo parseo la linea y genero el opcode cada vez que la ejecuta, eso dentro de un loop es muchas veces.

features:
* version desktop (swing)
* version mobile (anda en cualquier cel con java que soporte MIDP 2.0, que es bastante comun)
* en la version mobile guarda el codigo entre ejecuciones (si no es un perno)

una cosa que cambie desde el ultimo post es la sintaxis del lenguaje ya que escribir simbolos en un celular es mucho mas dificil que escribir palabras de diccionario, cambie las instrucciones por unas muy parecidas a las de asm de 80x86.

las instrucciones ahora son p -> put, s -> get, = -> set, + -> add, - -> sub, * -> mul, / -> div, % -> mod, & -> and, | -> or, ^ -> xor, e -> eq, n -> ne, j -> jmp

las otras quedan iguales.

hostee el codigo en http://code.google.com/p/repiola/, estoy peleando con el svn de netbeans para que me deje comitear los proyectos, en un rato tendrian que estar hosteados.
voy a subir los dos jars como releases.

para cerrar, un ejemplo con la nueva sintaxis, pinta una x en degrade y despues pinta pixeles aleatorios

: begin

put r2
add r0 1
add r1 1
add r2 1

lt r0 200 begin

# right to left line

set r0 199
set r1 0
set r2 0

: another

put r2
sub r0 1
add r1 1
add r2 1

lt r1 200 another

# some random pixels

set r3 0

: random

rnd r0
mod r0 200
rnd r1
mod r1 200
rnd r2
add r3 1
put r2

lt r3 200 random

# end!