summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfishsoupisgood <github@madingley.org>2019-07-19 11:22:33 +0100
committerfishsoupisgood <github@madingley.org>2019-07-19 11:22:33 +0100
commitee3e9e3f87133e77cb95d6f03eebfb3f856d7d47 (patch)
treebb8d8c1e444e996e15b01079f45a583f3baa0e48
parent928e658abbd64b1a58b6ed2c4fb53580afee6c8b (diff)
downloadwristapps-ee3e9e3f87133e77cb95d6f03eebfb3f856d7d47.tar.gz
wristapps-ee3e9e3f87133e77cb95d6f03eebfb3f856d7d47.tar.bz2
wristapps-ee3e9e3f87133e77cb95d6f03eebfb3f856d7d47.zip
happy
-rw-r--r--sha1/emul.script2
-rw-r--r--sha1/msauth.asm159
2 files changed, 73 insertions, 88 deletions
diff --git a/sha1/emul.script b/sha1/emul.script
index cd3324d..4efd419 100644
--- a/sha1/emul.script
+++ b/sha1/emul.script
@@ -1,4 +1,4 @@
b END
g TEST
-md T1 4
+md T2 4
quit
diff --git a/sha1/msauth.asm b/sha1/msauth.asm
index 51147e0..ce3e043 100644
--- a/sha1/msauth.asm
+++ b/sha1/msauth.asm
@@ -133,9 +133,6 @@ test_l2:
inc lidx
jsr sha1_block
- lda #(T1-DATA_START)
- sta dest
-
lda H+16
and #$F
@@ -148,7 +145,7 @@ test_l2:
txa
add #(H-DATA_START)
- jsr copy4
+ jsr copy4_to_t2
@@ -157,34 +154,24 @@ end: bra end
get_w32_015_to_t2:
- lda #(T2-DATA_START)
- sta dest
- lda #(ZERO-DATA_START)
- sta src1
-
lda lidx
cmp #0
bne get_w32_015_to_t2_l1
+ lda #(ZERO-DATA_START)
+ sta T2eVxorKEYOR_src
+
lda j
cmp #3
bhs get_w32_015_to_t2_z1
lsla
lsla
add #(KEY-DATA_START)
- sta src1
+ sta T2eVxorKEYOR_src
get_w32_015_to_t2_z1:
-
- lda #(ZERO-DATA_START)
- jsr add4
- lda #(T2-DATA_START)
- sta src1
- lda #(KEYOR-DATA_START)
- jsr xor4
-
-
-
+ ldx #(T2eVxorKEYOR-OPLIST_START)
+ jsr op4_list
rts
get_w32_015_to_t2_l1:
@@ -203,7 +190,7 @@ get_w32_015_to_t2_l2:
get_w32_015_to_t2_l3:
lda #(ZERO-DATA_START)
get_w32_015_to_t2_e:
- jsr add4
+ jsr copy4_to_t2
rts
get_w32_to_t2:
@@ -226,11 +213,7 @@ get_w32_to_t2_l1:
lsla
lsla
add #(WBUF-DATA_START)
- sta dest
- lda #(T2-DATA_START)
- sta src1
- lda #(ZERO-DATA_START)
- jsr add4
+ jsr copy4_from_t2
inc j
lda j
@@ -239,21 +222,8 @@ get_w32_to_t2_l1:
get_w32_to_t2_l2:
- lda #(T2-DATA_START)
- sta dest
- lda #(WBUF13 - DATA_START)
- sta src1
- lda #(WBUF8 - DATA_START)
- jsr xor4 ; T2 =W13 ^ W8
- lda #(T2-DATA_START)
- sta src1
- lda #(WBUF2 - DATA_START)
- jsr xor4 ; T2 = T2 ^ W2
- lda #(WBUF0 - DATA_START)
- jsr xor4 ; T2= T2 ^ W0
- lda #1
- jsr rot_left ; T2= ROTLEFT(T2,1)
-
+ ldx #(T2eROT1ofW13xorW8xorW2xortW0-OPLIST_START)
+ jsr op4_list
; for (x=0;x<14;++x) wbuf[x]=wbuf[x+1]
ldx #((WBUF0 + $FF - 3 ) - WBUF14)
@@ -262,10 +232,10 @@ get_w32_to_t2_l3:
sta (WBUF14 + 3 - $FF),x
incx
bne get_w32_to_t2_l3
- lda #(WBUF15-DATA_START)
- sta dest
- lda #(ZERO-DATA_START)
- jsr add4 ; WBUF15=T2
+
+ lda #(WBUF15 - DATA_START)
+ jsr copy4_from_t2
+
dec i
bne get_w32_to_t2_l2
@@ -404,26 +374,14 @@ op4_list_l2:
bra op4_list
-copy4:
- sta src1
- lda #(ZERO-DATA_START)
- sta src2
- lda #$d9 ; adc $ffff,a
- sta op4_src2
- bra op4_binary
-
-add4:
- sta src2
- lda #$d9 ; adc $ffff,a
- sta op4_src2
- bra op4_binary
-
-xor4:
- sta src2
- lda #$d8 ; eor $ffff,a
- sta op4_src2
- bra op4_binary
-
+copy4_to_t2:
+ sta T2eV_src
+ ldx #(T2eV-OPLIST_START)
+ bra op4_list
+copy4_from_t2:
+ sta VeT2_dest
+ ldx #(VeT2-OPLIST_START)
+ bra op4_list
op4_binary:
ldx #0
lda #DATA_START & $ff
@@ -461,30 +419,57 @@ op4_dst:
bne op4_1
rts
-rot_left:
- ldx dest
- sta j
-rot_loop:
- lda DATA_START,x
- rola
- lda DATA_START+1,x
- rola
- sta DATA_START+1,x
- lda DATA_START+2,x
- rola
- sta DATA_START+2,x
- lda DATA_START+3,x
- rola
- sta DATA_START+3,x
- lda DATA_START,x
- rola
- sta DATA_START,x
- dec j
- bne rot_loop
- rts
-
OPLIST_START:
+T2eV:
+ db $d9 ;add
+T2eV_src:
+ db 0 ;src1
+ db (ZERO-DATA_START) ;src2
+ db (T2-DATA_START) ;dst
+ db 0 ;stop
+
+VeT2:
+ db $d9 ;add
+ db (T2-DATA_START) ;src1
+ db (ZERO-DATA_START) ;src2
+VeT2_dest:
+ db 0 ;dest
+ db 0 ;stop
+
+
+
+T2eVxorKEYOR:
+ DB $d8 ;eor
+T2eVxorKEYOR_src:
+ DB 0 ;src1
+ DB (KEYOR-DATA_START) ;src2
+ DB (T2-DATA_START) ;dest
+ DB 0 ;stop
+
+T2eROT1ofW13xorW8xorW2xortW0:
+ DB $d8 ;eor
+ DB (WBUF0-DATA_START) ;src1
+ DB (WBUF2-DATA_START) ;src2
+ DB (T2-DATA_START) ;dest
+
+ DB $d8 ;eor
+ DB (T2-DATA_START) ;src1
+ DB (WBUF8-DATA_START) ;src2
+ DB (T2-DATA_START) ;dest
+
+ DB $d8 ;eor
+ DB (T2-DATA_START) ;src1
+ DB (WBUF13-DATA_START) ;src2
+ DB (T2-DATA_START) ;dest
+
+ DB $1 ;rot left
+ DB 1 ;1 time
+ DB 0 ; N/A
+ DB (T2-DATA_START) ;dest
+
+ DB 0 ;stop
+
T2eNotBandD:
DB $d8 ;eor