summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/descifrador.s101
1 files changed, 74 insertions, 27 deletions
diff --git a/app/descifrador.s b/app/descifrador.s
index 7335bde..ad9ff61 100644
--- a/app/descifrador.s
+++ b/app/descifrador.s
@@ -1,34 +1,81 @@
- mov r1, #0x100 ; r1 = 0x100
- mov r2, #0xCA ; r2 = 5
- mov r7, #0x0 ; r7 = 0
+.global reset
+reset:
-@Guardar en memoria 6 veces el valor del pixel: #0xCA
-@ a partir de la posicion #0x100
-loop
- str r2, [r1] ;
- add r1, r1, #4
- add r7, r7, #1
- cmp r7, #6
- bne loop
+.equ START_BUTTON, 0x30050000 @Cambiar a dirección de memoria del botón
+.equ KEY_SWITCHES, 0x30060000 @Cambiar a dirección de memoria de los switches
+@Copiar buffer a VRAM (?)
+ @ Esto es para guardar en memoria cada pixel
+ @ en este caso se guarda un valor de 0xCA por ejemplo desde la posicion 0x100
+ @ dos veces, hasta la 0x104 por ejemplo
+ mov r1, #0x100
+ mov r2, #0xCA
+ mov r7, #0x0
+
+load:
+ str r2, [r1]
+ add r1, r1, #4
+ add r7, r7, #1
+ cmp r7, #2
+ bne load
+
+@Esperar botón
+ ldr r2, =START_BUTTON
+ ldr r3, =KEY_SWITCHES
+
+@Prueba: poner botón de start en 1
+ mov r9, #0x30050000
+ mov r5, #1
+ str r5, [r9]
+@Prueba: poner switches en 1010
+ mov r9, #0x30060000
+ mov r5, #0b1011
+ str r5, [r9]
+
+idle:
+ ldr r5, [r2] @Leer valor del botón
+ ldr r6, [r3] @Leer valores de los switches
+ cmp r5, #1
+ beq start
+ b idle
+
+
+start:
+ @Verificar el algoritmo seleccionado
+ ldr r6, [r3]
+ and r6, r6, #1
+ cmp r6, #1
+ beq not
+ cmp r6, #0
+ beq xor
+
@Reiniciar contador y posicion de memoria
- mov r1, #0x100
- mov r7, #0x0
+ mov r1, #0x100
+ mov r7, #0x0
@Recorrer la memoria desde #0x100 y hacer not al valor en cada posicion
@ y volverlo a guardar
-loop1
- ldr r3, [r1]
- mvn r3, r3
- str r3, [r1]
- add r1, r1, #4
- add r7, r7, #1
- cmp r7, #6
- bne loop1
-
-
-;e3a01c01 e3a020ca e3a07000
-;e5812000 e2811004 e2877001 e3570006 1afffffa
-;e3a01c01 e3a07000
-;e5913000 ele03003 e5813000 e2811004 e2877001 e3570006 lafffff8
+not:
+ ldr r4, [r1]
+ mvn r4, r4
+ str r4, [r1] @Se vuelve a guardar en memoria ya modificado
+ add r1, r1, #4
+ add r7, r7, #1
+ cmp r7, #1000
+ bne not
+ b halt
+
+xor:
+ ldr r4, [r1]
+ ldr r6, [r3]
+ lsr r6, r6, #1
+ eor r4, r4, r6
+ str r4, [r4] @Se vuelve a guardar en memoria ya modificado
+ add r1, r1, #4
+ add r7, r7, #1
+ cmp r7, #1000
+ bne xor
+ b halt
+halt:
+ b halt \ No newline at end of file