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
  • 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

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.

See Also