CallWin32_ParsAddMemBlk
(SWI &C1006)

On entry: 
R0 =  ptr to workspace
R1 =  Which parameter to add or set
R2 =  ptr to data
R3 =  length of data (ensure buffer is a multiple of 32)
On exit: -
Interrupts: Interrupt status is unaltered
Fast interrupts are enabled
Processor Mode:  Processor is in SVC mode
Re-entrancy: SWI is reentrant
Use: This call sets the parameter specified by R1 to be a pointer to the data specified by R2. Ensure this data buffer exists across the CallWin32_WithPars as it will be filled in with whatever modifications the Win32 function made.

Note that the buffer's size should be a multiple of 4 bytes (this is because the memory copying routine copies 4 bytes at a time for efficiency) and hence on API return the buffer will be overwritten to R3 rounded up to the next 4 byte boundary. Not fulfilling this will cause data corruption. Lastly, pass the higher of what is sent and received as R3 is used to determine how much to copy for both input and output. You may pass up to 16Kb in a buffer (can be changed by a recompile).

Related SWIs: CallWin32_ParsInit (SWI &C1002), CallWin32_ParsAddInt32 (SWI &C1003),CallWin32_ParsAddInt16 (SWI &C1004), CallWin32_ParsAddInt8 (SWI &C1005),  CallWin32_ParsAddString (SWI &C1007), CallWin32_WithPars (SWI &C1008)