For both your questions it's possible yes, as it just about adding more ipc commands from the cpc to the m4 and the m4 to the esp.
But neither is possible yet. To be honest the source is a big mess at the moment

for initial release I just want the basic operations to work relieable and on all cpc's.
Maybe I'll release the source at some point or if I fell like it improve and add features myself.
As for buffers, the cpc receive buffer is in the M4 ROM area, the send buffer has to be in RAM.
This is a flow of a simple command from CPC (|netstat no params) to display current status of the WiFi connection.
//////////////////
// On the cpc side
rom_reponse .equ 0xD000
C_NETSTAT .equ 0x4323
; ------------------------- get network status
netstat:
call get_iy_workspace
ld (iy),#2
ld 1(iy),#C_NETSTAT
ld 2(iy),#C_NETSTAT>>8
push iy
pop hl
call send_command
ld hl,#rom_reponse+3
call show_message
ret
; HL contains packet to be send
send_command:
ld bc,#0xFE00 ; data out port
ld d,(hl) ; size
out (c),d
sendloop:
inc hl
ld a,(hl)
out (c),a
dec d
ld a,d
cp #0
jr nz, sendloop
; tell M4 that command has been send
ld bc,#0xFF00
out (c),c
ret
///////////////////
// On the Cortex M4
case C_NETSTAT:
netstat_send_esp(&rcv->data[0]);
switch ( rcv->data[0] )
{
case 0:
rsp->size = 3+sprintf(&rsp->data[0], "Idle.\r\n");
break;
case 1:
rsp->size = 3+sprintf(&rsp->data[0], "Connecting.\r\n");
break;
.... etc
//////////////////////
// on the ESP8266
void m4_ipc_handler(void)
{
volatile unsigned int cmdid;
volatile unsigned int cmdsize;
if ( spiWrite(0) == 0x55 ) // initiate transfer?
{
spiRead(&cmdid, 4);
spiRead(&cmdsize, 4);
spiRead(&m4data, cmdsize);
...etc
responds with:
void netstat(void)
{
m4data[0] = wifi_station_get_connect_status();
if ( m4data[0] == 5 ) // Got IP
{
wifi_get_ip_info(0, &netConfig.ip);
os_memcpy(&m4data[1], &netConfig.ip, 4);
}
spiCommandNoResp(M4CMD_NETSTAT, 5, m4data);
}
So it's quite a pipeline, maybe it can be simplefied somewhat, but basically all commands can be added with enough effort

I also have a config area in the rom, where I from the cpc can ask the cortex m4 to write to this area, so this could be used as an outgoing buffer.
Hope it makes sense.
@Duke: Just two questions regarding driver development on CPC side:
- is it possible to low level access the SD card (reading and writing sectors directlly)?
- is it possible to access the ESP8266 in a way, that the CPC can send and receive TCP and UDP packages (multiple sockets/connections)? Are there any buffers for incoming and outgoing data on hardware side?
CU,
Prodatron