Skip to content

SIO Command $C8 Hash Input

Ripjetski edited this page Aug 23, 2023 · 3 revisions

This is a command for Device $70 - The FujiNet Device itself (see SIO-Commands-for-Device-ID-$70).

Hash Input ($C8)

Description

Puts data in the FujiNet's input buffer for hashing by Hash Compute, which should be the function called after this command has input all the data to hash. This command can be called as many times as needed to input data at up to 65535 bytes at a time.

Because DAUX is used to tell the FujiNet how many bytes to expect, both DBUF and DAUX must be set to the same value.

Firmware version required: 1.1 (2023.08.22) +

Parameters

DCB Value
DDEVIC $70
DUNIT $01
DCOMND $C8
DSTATS $80
DBUF A buffer as big as specified by DBYT/DAUX
DTIMLO $03
DBYT number of bytes to input
DAUX1 number of bytes to input (LO)
DAUX2 number of bytes to input (HI)

Examples

CC65

unsigned char hash_input(char* buf, unsigned short len)                                                                     
{                                                                                                                                    
  OS.dcb.ddevic   = 0x70;                                                                                                   
  OS.dcb.dunit    = 1;                                                                                                               
  OS.dcb.dcomnd   = 0xC8;                                                                                                            
  OS.dcb.dstats   = 0x80;                                                                                                            
  OS.dcb.dbuf     = buf;                                                                                                             
  OS.dcb.dtimlo   = 0x03;                                                                                                  
  OS.dcb.dbyt     = len;                                                                                                             
  OS.dcb.daux     = len;                                                                                                             
  siov();                                                                                                                            
                                                                                                                                     
  return OS.dcb.dstats; // Return SIO error or success.                                                                              
}

Related Functions

Clone this wiki locally