Continue labeling and documentation in ram.asm, main rando block
Deleted several unused modules and some commented code Reorganized some routines to clean up modules Moved some memory into mirrored WRAM Refactored NMI hook aux routine Removed old fake flipper fix
This commit is contained in:
80
crypto.asm
80
crypto.asm
@@ -20,20 +20,6 @@ macro ASL32Single(value)
|
||||
; ROL handles the carry from the lower byte for us
|
||||
endmacro
|
||||
|
||||
;macro LSR32(value,k)
|
||||
; LDX.b <k>
|
||||
; ?loop:
|
||||
; %LSR32Single(<value>,<k>)
|
||||
; DEX : CPX.b #$00 : BNE ?loop
|
||||
;endmacro
|
||||
|
||||
;macro ASL32(value,k)
|
||||
; LDX.b <k>
|
||||
; ?loop:
|
||||
; %LSR32Single(<value>,<k>)
|
||||
; DEX : CPX.b #$00 : BNE ?loop
|
||||
;endmacro
|
||||
|
||||
CryptoMX:
|
||||
PHX
|
||||
|
||||
@@ -222,69 +208,3 @@ db 32 ; n is 2
|
||||
;dd (23*$9e3779b9)&$ffffffff ; n is 3
|
||||
dd (32*$9e3779b9)&$ffffffff ; n is 2
|
||||
|
||||
;void btea(uint32_t *v, int n, uint32_t const key[4]) {
|
||||
; uint32_t y, z, sum;
|
||||
; unsigned p, rounds, e;
|
||||
|
||||
; } else if (n < -1) { /* Decoding Part */
|
||||
; n = -n;
|
||||
; rounds = 6 + 52/n;
|
||||
; sum = rounds*DELTA;
|
||||
; y = v[0];
|
||||
; do {
|
||||
; e = (sum >> 2) & 3;
|
||||
; for (p=n-1; p>0; p--) {
|
||||
; z = v[p-1];
|
||||
; y = v[p] -= MX;
|
||||
; }
|
||||
; z = v[n-1];
|
||||
; y = v[0] -= MX;
|
||||
; sum -= DELTA;
|
||||
; } while (--rounds);
|
||||
; }
|
||||
|
||||
;BTEA will encode or decode n words as a single block where n > 1
|
||||
;
|
||||
;v is the n word data vector
|
||||
;k is the 4 word key
|
||||
;n is negative for decoding
|
||||
;if n is zero result is 1 and no coding or decoding takes place, otherwise the result is zero
|
||||
;assumes 32 bit 'long' and same endian coding and decoding
|
||||
;#include <stdint.h>
|
||||
;#define DELTA 0x9e3779b9
|
||||
;#define MX ((((z>>5)^(y<<2)) + ((y>>3)^(z<<4))) ^ ((sum^y) + (key[(p&3)^e] ^ z)))
|
||||
;
|
||||
;void btea(uint32_t *v, int n, uint32_t const key[4]) {
|
||||
; uint32_t y, z, sum;
|
||||
; unsigned p, rounds, e;
|
||||
; if (n > 1) { /* Coding Part */
|
||||
; rounds = 6 + 52/n;
|
||||
; sum = 0;
|
||||
; z = v[n-1];
|
||||
; do {
|
||||
; sum += DELTA;
|
||||
; e = (sum >> 2) & 3;
|
||||
; for (p=0; p<n-1; p++) {
|
||||
; y = v[p+1];
|
||||
; z = v[p] += MX;
|
||||
; }
|
||||
; y = v[0];
|
||||
; z = v[n-1] += MX;
|
||||
; } while (--rounds);
|
||||
; } else if (n < -1) { /* Decoding Part */
|
||||
; n = -n;
|
||||
; rounds = 6 + 52/n;
|
||||
; sum = rounds*DELTA;
|
||||
; y = v[0];
|
||||
; do {
|
||||
; e = (sum >> 2) & 3;
|
||||
; for (p=n-1; p>0; p--) {
|
||||
; z = v[p-1];
|
||||
; y = v[p] -= MX;
|
||||
; }
|
||||
; z = v[n-1];
|
||||
; y = v[0] -= MX;
|
||||
; sum -= DELTA;
|
||||
; } while (--rounds);
|
||||
; }
|
||||
;}
|
||||
|
||||
Reference in New Issue
Block a user