N: SIO Command 'S' Status - FujiNetWIFI/fujinet-firmware GitHub Wiki
SIO Command Status ($53) ['S']
This is a command for Devices $71-$78 - The N: Device (see SIO-Commands-for-Device-IDs-$71-to-$78).
Description
For Atari, Return the status of the currently opened protocol channel, in the following format:
Offset | Description |
---|---|
0 | LO Byte of # of bytes waiting |
1 | HI Byte of # of bytes waiting |
2 | 0=Disconnected, 1=Connected |
3 | Extended Error code |
It is expected that the buffer point to the DVSTAT location in the OS ($02EA)
Parameters
DCB | Value |
---|---|
DDEVIC | $71 |
DUNIT | $01 - $04 |
DCOMND | $53 'S' |
DSTATS | $40 |
DBUF | DVSTAT |
DTIMLO | $0F |
DBYT | 4 |
DAUX1 | N: Status DAUX1 Values |
DAUX2 | N: Status DAUX2 Values |
Coleco Adam Implementation
AdamNet has a specific STATUS command (which can be retrieved using the EOS REQUEST STATUS and EOS GET STATUS BYTE commands), this is used to return a bit field
bit # | Description |
---|---|
0 | Client has data available |
1 | Client is connected |
2 | Client has an error |
3 | Server connection available (client is waiting) |
4 | Server error |
5 | NOT USED |
6 | NOT USED |
7 | NOT USED |
Examples
ATARI
CC65
// Get # of bytes waiting
OS.dcb.ddevic=0x71;
OS.dcb.dunit=1;
OS.dcb.dcomnd='S';
OS.dcb.dstats=0x40;
OS.dcb.dbuf=&status;
OS.dcb.dtimlo=0x0f;
OS.dcb.dbyt=4;
OS.dcb.daux=0;
siov();
bw=(status[1]<<8)+status[0];
connected=status[2];
ADAM
Z88DK C
/* THIS USES EOSLIB: http://github.com/tschak909/eoslib */
#define NET 0x09
#define ACK 0x80
#define CONNECTED 2 /* second bit */
bool connected(void)
{
DCB *dcb;
while (eos_request_device_status(NET,dcb) < ACK);
return eos_get_device_status(NET) & CONNECTED;
}
See Also
Put other related command links here.