SIO Command Open ($4F) ['O']
This is a command for Devices $71-$78 - The N: Device (see SIO-Commands-for-Device-IDs-$71-to-$78).
Description
Given a devicespec in the returned 256 byte buffer, parse it, and if valid, instantiate the protocol, and prepare the Atari to be able to send/receive an I/O channel for the chosen protocol.
If a devicespec is invalid, then an ERROR 165 is returned on the subsequent STATUS command (while returning an SIO ERROR 144, indicating that you should check the STATUS).
Parameters
ADAM
Parameters
- Device 09 to 0C
- Use AdamNET Write (EOS WRITE CHARACTER DEVICE)
| Offset | Value |
|---|---|
| 0 | 'O' |
| 1 | MODE N: AUX1 Values |
| 2 | TRANS N: AUX2 Values |
| 3-n | The URL to open N: devicespec |
Return Values
- $80 - ACK. Open successful
- $8C - NAK - Open not successful, read status byte.
ATARI
| DCB | Value |
|---|---|
| DDEVIC | $71 |
| DUNIT | $01 - $04 |
| DCOMND | $4F 'O' |
| DSTATS | $80 |
| DBUF | a 256 byte buffer containing N: devicespec |
| DTIMLO | $0F |
| DBYT | 256 |
| DAUX1 | N: AUX1 Values |
| DAUX2 | N: AUX2 Values |
Examples
ATARI
ATARI BASIC (and friends)
1000 REM THIS USES THE N: DEVICE (PROVIDED BY NDEV.COM)
1010 OPEN #1,12,2,"N:HTTPS://www.gnu.org/licenses/gpl-3.0.txt"
CC65
static unsigned char hostname[256]="N:TCP://irata.online:8005/";
/**
* io_init() - Set-up the I/O
*/
void io_init(void)
{
OS.vprced=ih;
PIA.pactl |= 1;
// Establish connection
OS.dcb.ddevic=0x71;
OS.dcb.dunit=1;
OS.dcb.dcomnd='O';
OS.dcb.dstats=0x80;
OS.dcb.dbuf=&hostname;
OS.dcb.dtimlo=0x0f;
OS.dcb.dbyt=256;
OS.dcb.daux=0;
siov();
}
COLECO Adam
Z88DK
/* This uses eoslib: http://github.com/tschak909/eoslib */
#DEFINE NET 0x09
const char *url="N:HTTPS://WWW.GNU.ORG/licenses/gpl-3.0.txt";
unsigned char open(void)
{
struct _OC
{
unsigned char cmd;
unsigned char mode;
unsigned char trans;
char url[256];
} OC;
unsigned char r;
OC.cmd = 'O';
OC.mode = 12;
OC.trans = 3;
strncpy(OC.url,url,256);
return eos_write_character_device(NET,(unsigned char *)OC,sizeof(OC)); // 0x80 means successful
}
See Also
Put other related command links here.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- Home
- What is FujiNet?
- The Definition of Done
- Board bring up for FujiNet Platform.IO code
- The Complete Linux CLI Guide
- The Complete macOS CLI Guide
- Development Env for Apps
- FujiNet-Development-Guidelines
- System Quickstarts
- FujiNet Flasher
- Setting up a TNFS Server
- FujiNet Configuration File: fnconfig.ini
- AppKey Registry - AppKey-Registry-Page
- CP-M Support
- BBS
- Official Hardware Versions
- Prototype Board Revisions
- FujiNet Development Guidelines
- The Network Protocol Handbook
- Atari Programming
- Apple Programming
- C64 Programming
- ADAM Programming
- Intellivision Programming
- Testing Plan
- Hacker List
- FujiNet VirtualMachine
Copyright 2026 Contributors to the FujiNetWIFI project.
Join us on Discord: https://discord.gg/7MfFTvD