Changes

141 bytes removed ,  14:36, 28 March 2015
no edit summary
Line 9: Line 9:  
|-
 
|-
 
| 1
 
| 1
| File(/archive?) handle lower word
+
| File handle lower word
 
|-
 
|-
 
| 2
 
| 2
Line 21: Line 21:  
|-
 
|-
 
| 5
 
| 5
| Size of second memory block
+
| Size of read buffer
 
|-
 
|-
 
| 6
 
| 6
Line 27: Line 27:  
|-
 
|-
 
| 7
 
| 7
| Size of first memory block
+
| Size of hashtable
 
|-
 
|-
 
| 8
 
| 8
| (size of first mem block << 8)  <nowiki>|</nowiki> 4
+
| (size of hashtable << 8)  <nowiki>|</nowiki> 4
 
|-
 
|-
 
| 9
 
| 9
| Pointer to first memory block
+
| Pointer to hashtable
 
|-
 
|-
 
| 10
 
| 10
| (size of second mem block << 8)  <nowiki>|</nowiki> 0x14
+
| (size of read buffer << 8)  <nowiki>|</nowiki> 0x14
 
|-
 
|-
 
| 11
 
| 11
| Pointer to second memory block
+
| Pointer to read buffer
 
|}
 
|}
   Line 61: Line 61:  
|}
 
|}
   −
The data read are stored in the second memory block. The first memory block is filled with hashes, in an unknown manner.
+
The data read are stored in the read buffer. For each 0x1000-byte block read, a SHA256 hash of the block is stored in the hashtable.
   −
Reads seem to be sector-aligned (one sector = 0x1000 bytes when reading from the cart, not sure if that is true everywhere). The first memory block seems to be filled with one hash per sector read.
+
It is unknown how hashing behaves if the read offset/size are not aligned to a 0x1000-byte boundary.
136

edits