SIO Command $DC Open App Key - FujiNetWIFI/fujinet-firmware GitHub Wiki
This is a command for Device $70 - The FujiNet Device itself (see SIO-Commands-for-Device-ID-$70).
Open App Key ($DC)
Description
This command is required prior to performing a Write App Key or Read App Key command, as it sets the details needed for the key.
A six-byte buffer is sent from the Atari to FujiNet with the following information:
Size | Value | Notes |
---|---|---|
2 bytes | creator ID | see below |
1 byte | app ID | Creator-specified value (0-255) |
1 byte | key ID | Creator-specified value (0-255) |
1 byte | open mode | 0 = read, 1 = write |
1 byte | reserved | 0 - currently unused |
App keys are stored as files in the /FujiNet
directory on the SD card. Note that only SD storage is currently supported for app key storage, and app key reads/writes will fail if no SD card is installed. The file name is constructed using the hexadecimal values for creator, app, and key. e.g. /FujiNet/B0C1010A.key
There's currently no need to close an app key, as it is immediately closed after an App Key Read or Write operation. The close function may be used in the future.
Creator IDs
This is an unsigned 16-bit value, which should allow for more than enough creators. Values from 0-255 (0x00-0xFF) are reserved for internal use by FujiNet - please don't use any value in this range.
Although there's currently no official registry for FujiNet Creator ID's, we will document them here as we're informed they're in use.
Known Creator IDs and AppIDs
Creator ID | Creator | AppID | App |
---|---|---|---|
0x0001 | FujiNet | 0x01 | Lobby Client |
0x0001 | FujiNet | 0x02 | FujiNet Config |
0x0909 | @tschak909 | 0x01 | Reversi |
0x2222 | @shawnjefferson | 0x01 | Z-Machine Client |
0xB0C1 | @bocianu | 0x01 | Weather |
0xB177 | @billkendrick | 0x01 | APOD |
0xB177 | @billkendrick | 0x02 | ISS Tracker |
0xB177 | @billkendrick | 0x03 | Firefighter |
0xBEEF | @frachel (Schadret) | ||
0xD00D | @Brad | 0x01 | YAIL (Yet Another Image Loader) |
0xDE17 | @delysio | ||
0xE41C | @ericcarrgh | ||
0xFE0C | @fe(nr)oc(k) | 0x01 | config-ng |
0x3022 | @mozzwald | ||
0xFEED | @TechCowboy |
- Note: Creator ID range
0x0000
-0x00FF
is Reserved for FujiNet use
Lobby Client App Key IDs
While the Lobby Client owns 0x0001:0x01, each participating Game Client may reserve a Key ID under that space. When a server is chosen in the Lobby, it will write out the server endpoint to that app key, which the Game Client may read to know where to connect.
Key ID 0
is reserved for the player's name, and is meant to be used across all game clients.
Creator ID | Creator | AppID | Key (appkey) | Registered Use |
---|---|---|---|---|
0x0001 | FujiNet | 0x01 | 0x0 | Player Name (shared) |
0x0001 | FujiNet | 0x01 | 0x01 | 5 Card Stud / Poker |
0x0001 | FujiNet | 0x01 | 0x02 | Reversi |
0x0001 | FujiNet | 0x01 | 0x03 | Fujitzee |
Parameters
DCB | Value |
---|---|
DDEVIC | $70 |
DUNIT | $01 |
DCOMND | $DC |
DSTATS | $80 |
DBUF | Pointer 6-byte buffer with structure specified above |
DTIMLO | 15 |
DBYT | 6 |
DAUX | Not used |
Examples
See appkey-sample in the fujinet-apps repository.