Skip to content

SIO Command $C9 Base64 Decode Output

Thomas Cherryhomes edited this page Aug 20, 2023 · 2 revisions

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

Base64 Decode Output ($C9)

Description

This function retrieves the output buffer containing the decoded data. You can fetch as many bytes up to the length reported by Base64 Decode Length. Any attempt to get more bytes than are in the buffer will result in an error.

DBYT and DAUX must be set to the same value, so that the FujiNet knows the number of bytes to return.

Parameters

DCB Value
DDEVIC $70
DUNIT $01
DCOMND $C9
DSTATS $40
DBUF a buffer as big as set by DBYT and DAUX
DTIMLO $03
DBYT the number of bytes to send back
DAUX1 the number of bytes to send back (LO)
DAUX2 the number of bytes to send back (HI)

Examples

CC65

unsigned char base64_decode_output(char *s, unsigned short len)                                                                      
{                                                                                                                                    
  OS.dcb.ddevic   = BASE64_DEVICE;                                                                                                   
  OS.dcb.dunit    = 1;                                                                                                               
  OS.dcb.dcomnd   = 0xC9;                                                                                                            
  OS.dcb.dstats   = 0x40;                                                                                                            
  OS.dcb.dbuf     = s;                                                                                                               
  OS.dcb.dtimlo   = BASE64_TIMEOUT;                                                                                                  
  OS.dcb.dbyt     = len;                                                                                                             
  OS.dcb.daux     = len;                                                                                                             
  siov();                                                                                                                            
                                                                                                                                     
  return OS.dcb.dstats; // Return SIO error or success.                                                                              
}                                                                                                                                    

Related Functions

Clone this wiki locally