mirror of
https://github.com/zellyn/a2audit.git
synced 2025-04-02 18:29:41 +00:00
shasum: Longer tests, slightly shorter code
Added tests for 0x1ff- and 0x200-length inputs. Also changed code that sets k constants to use constant values, rather than copying, to save a few bytes.
This commit is contained in:
parent
37de1f5cac
commit
54710c10a0
@ -40,19 +40,19 @@ kh1: !be32 $EFCDAB89
|
||||
kh2: !be32 $98BADCFE
|
||||
kh3: !be32 $10325476
|
||||
kh4: !be32 $C3D2E1F0
|
||||
k1: !be32 $5A827999 ; k = constants
|
||||
k2: !be32 $6ED9EBA1
|
||||
k3: !be32 $8F1BBCDC
|
||||
k4: !be32 $CA62C1D6
|
||||
k1 = $5A827999 ; k constants
|
||||
k2 = $6ED9EBA1
|
||||
k3 = $8F1BBCDC
|
||||
k4 = $CA62C1D6
|
||||
|
||||
!macro cp32 .source, .target {
|
||||
lda .source
|
||||
!macro set32 .target, .value {
|
||||
lda #<(.value >> 24)
|
||||
sta .target
|
||||
lda .source+1
|
||||
lda #<(.value >> 16)
|
||||
sta .target+1
|
||||
lda .source+2
|
||||
lda #<(.value >> 8)
|
||||
sta .target+2
|
||||
lda .source+3
|
||||
lda #<(.value)
|
||||
sta .target+3
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ main:
|
||||
;; Test shasum ""
|
||||
lda #0
|
||||
sta INPUT
|
||||
lda #$ff
|
||||
lda #$fe
|
||||
sta INPUT+1
|
||||
lda #0
|
||||
sta LENGTH+1
|
||||
@ -102,14 +102,14 @@ main:
|
||||
lda #(h5-h0)
|
||||
jsr prbytes
|
||||
|
||||
;; Test shasum ROM[:0x37]
|
||||
;; Test shasum FE00[:0x37]
|
||||
lda #0
|
||||
sta INPUT
|
||||
lda #$ff
|
||||
lda #$fe
|
||||
sta INPUT+1
|
||||
lda #0
|
||||
sta LENGTH+1
|
||||
lda #$37 ; 863ec5335a92b8289e4b1e5cbf646689fe81134b
|
||||
lda #$37 ; 1CF73FC6156B548A949D315120B5256245EAA33E
|
||||
sta LENGTH
|
||||
jsr shasum
|
||||
|
||||
@ -120,14 +120,50 @@ main:
|
||||
lda #(h5-h0)
|
||||
jsr prbytes
|
||||
|
||||
;; Test shasum ROM[:0x100]
|
||||
;; Test shasum FE00[:0x100]
|
||||
lda #0
|
||||
sta INPUT
|
||||
lda #$ff
|
||||
lda #$fe
|
||||
sta INPUT+1
|
||||
lda #1
|
||||
sta LENGTH+1
|
||||
lda #0 ; F0282F962EC20651431D385E813F6E0904F8F812
|
||||
lda #0 ; 7B3D05347B52210065E27054FDFD0B8B699F0965
|
||||
sta LENGTH
|
||||
jsr shasum
|
||||
|
||||
; lda #$8d
|
||||
; jsr COUT
|
||||
|
||||
+setSRC h0
|
||||
lda #(h5-h0)
|
||||
jsr prbytes
|
||||
|
||||
;; Test shasum FE00[:0x1ff]
|
||||
lda #0
|
||||
sta INPUT
|
||||
lda #$fe
|
||||
sta INPUT+1
|
||||
lda #$1
|
||||
sta LENGTH+1
|
||||
lda #$ff ; 269CA6B0C644DAC01D908B20C10C0D5B19C52ABF
|
||||
sta LENGTH
|
||||
jsr shasum
|
||||
|
||||
; lda #$8d
|
||||
; jsr COUT
|
||||
|
||||
+setSRC h0
|
||||
lda #(h5-h0)
|
||||
jsr prbytes
|
||||
|
||||
;; Test shasum FE00[:0x200]
|
||||
lda #0
|
||||
sta INPUT
|
||||
lda #$fe
|
||||
sta INPUT+1
|
||||
lda #2
|
||||
sta LENGTH+1
|
||||
lda #0 ; D5AC71D5EE76E31CC82CF5136151BF4CDA503601
|
||||
sta LENGTH
|
||||
jsr shasum
|
||||
|
||||
@ -245,7 +281,7 @@ do_chunk:
|
||||
ldy #0 ; y is index into w
|
||||
|
||||
;; First 20: k1
|
||||
+cp32 k1, k
|
||||
+set32 k, k1
|
||||
|
||||
ldx #16
|
||||
- jsr kind1
|
||||
@ -257,7 +293,7 @@ do_chunk:
|
||||
dex
|
||||
bne -
|
||||
;; Second 20: k2
|
||||
+cp32 k2, k
|
||||
+set32 k, k2
|
||||
|
||||
ldx #12
|
||||
- jsr kind2
|
||||
@ -270,7 +306,7 @@ do_chunk:
|
||||
bne -
|
||||
|
||||
;; Third 20: k3
|
||||
+cp32 k3, k
|
||||
+set32 k, k3
|
||||
|
||||
ldx #8
|
||||
- jsr kind3
|
||||
@ -283,7 +319,7 @@ do_chunk:
|
||||
bne -
|
||||
|
||||
;; Fourth 20: k4
|
||||
+cp32 k4, k
|
||||
+set32 k, k4
|
||||
|
||||
ldx #4
|
||||
- jsr kind2
|
||||
|
@ -8,7 +8,41 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// 0xfe00 - 0xffff
|
||||
var rom = []byte{
|
||||
0xC6, 0x34, 0xF0, 0x9F, 0xCA, 0xD0, 0x16, 0xC9,
|
||||
0xBA, 0xD0, 0xBB, 0x85, 0x31, 0xA5, 0x3E, 0x91,
|
||||
0x40, 0xE6, 0x40, 0xD0, 0x02, 0xE6, 0x41, 0x60,
|
||||
0xA4, 0x34, 0xB9, 0xFF, 0x01, 0x85, 0x31, 0x60,
|
||||
0xA2, 0x01, 0xB5, 0x3E, 0x95, 0x42, 0x95, 0x44,
|
||||
0xCA, 0x10, 0xF7, 0x60, 0xB1, 0x3C, 0x91, 0x42,
|
||||
0x20, 0xB4, 0xFC, 0x90, 0xF7, 0x60, 0xB1, 0x3C,
|
||||
0xD1, 0x42, 0xF0, 0x1C, 0x20, 0x92, 0xFD, 0xB1,
|
||||
0x3C, 0x20, 0xDA, 0xFD, 0xA9, 0xA0, 0x20, 0xED,
|
||||
0xFD, 0xA9, 0xA8, 0x20, 0xED, 0xFD, 0xB1, 0x42,
|
||||
0x20, 0xDA, 0xFD, 0xA9, 0xA9, 0x20, 0xED, 0xFD,
|
||||
0x20, 0xB4, 0xFC, 0x90, 0xD9, 0x60, 0x20, 0x75,
|
||||
0xFE, 0xA9, 0x14, 0x48, 0x20, 0xD0, 0xF8, 0x20,
|
||||
0x53, 0xF9, 0x85, 0x3A, 0x84, 0x3B, 0x68, 0x38,
|
||||
0xE9, 0x01, 0xD0, 0xEF, 0x60, 0x8A, 0xF0, 0x07,
|
||||
0xB5, 0x3C, 0x95, 0x3A, 0xCA, 0x10, 0xF9, 0x60,
|
||||
0xA0, 0x3F, 0xD0, 0x02, 0xA0, 0xFF, 0x84, 0x32,
|
||||
0x60, 0xA9, 0x00, 0x85, 0x3E, 0xA2, 0x38, 0xA0,
|
||||
0x1B, 0xD0, 0x08, 0xA9, 0x00, 0x85, 0x3E, 0xA2,
|
||||
0x36, 0xA0, 0xF0, 0xA5, 0x3E, 0x29, 0x0F, 0xF0,
|
||||
0x06, 0x09, 0xC0, 0xA0, 0x00, 0xF0, 0x02, 0xA9,
|
||||
0xFD, 0x94, 0x00, 0x95, 0x01, 0x60, 0xEA, 0xEA,
|
||||
0x4C, 0x00, 0xE0, 0x4C, 0x03, 0xE0, 0x20, 0x75,
|
||||
0xFE, 0x20, 0x3F, 0xFF, 0x6C, 0x3A, 0x00, 0x4C,
|
||||
0xD7, 0xFA, 0x60, 0xEA, 0x60, 0xEA, 0xEA, 0xEA,
|
||||
0xEA, 0xEA, 0x4C, 0xF8, 0x03, 0xA9, 0x40, 0x20,
|
||||
0xC9, 0xFC, 0xA0, 0x27, 0xA2, 0x00, 0x41, 0x3C,
|
||||
0x48, 0xA1, 0x3C, 0x20, 0xED, 0xFE, 0x20, 0xBA,
|
||||
0xFC, 0xA0, 0x1D, 0x68, 0x90, 0xEE, 0xA0, 0x22,
|
||||
0x20, 0xED, 0xFE, 0xF0, 0x4D, 0xA2, 0x10, 0x0A,
|
||||
0x20, 0xD6, 0xFC, 0xD0, 0xFA, 0x60, 0x20, 0x00,
|
||||
0xFE, 0x68, 0x68, 0xD0, 0x6C, 0x20, 0xFA, 0xFC,
|
||||
|
||||
0xA9, 0x16, 0x20, 0xC9, 0xFC, 0x85, 0x2E, 0x20,
|
||||
0xFA, 0xFC, 0xA0, 0x24, 0x20, 0xFD, 0xFC, 0xB0,
|
||||
0xF9, 0x20, 0xFD, 0xFC, 0xA0, 0x3B, 0x20, 0xEC,
|
||||
@ -51,6 +85,10 @@ func main() {
|
||||
fmt.Printf("%X\n", shasum(rom[:0x37]))
|
||||
fmt.Printf("%X\n", sha1.Sum(rom[:0x100]))
|
||||
// fmt.Printf("%X\n", shasum(rom[:0x100]))
|
||||
// fmt.Printf("%X\n", sha1.Sum(rom[:0x1ff]))
|
||||
fmt.Printf("%X\n", shasum(rom[:0x1ff]))
|
||||
// fmt.Printf("%X\n", sha1.Sum(rom[:0x200]))
|
||||
fmt.Printf("%X\n", shasum(rom[:0x200]))
|
||||
}
|
||||
|
||||
func print40s(in []byte) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user