Michael Piepers homepage | |||||
BeOS Programs | |||||
PalmBeach | |||||
PSION Link Protocol description |
Here is a description of the Remote File Service Protocol (RFSV), which is already built into the PSION palmtop . This protocol is used to access the PSION-filesystem from the BeOS and vice versa.
The PSION files-application displays all devices of the BeOS system under the name "REM::". Unfortunately the PSION does not support a case sensitive filesystem. There may be some problems accessing files, which name only differs in the casesenitivity.
The RFSV protocol can be used from the PSION 3c as a server protocol and a client protocol. The PSION 5 supports only the server protocol. Depending on this, you cannot access the BeOS from a PSION 5.
This protocol isn't documented anywhere. Therefore I have tested the appropriate commands. A source code was at my disposal, from which one I could pick some informations. Therefore I cannot take over a warranty for the correctness of this description. The description corresponds to the implementation in my program, which connects the PSION with the BeOS
In order to start the RFSV protocol, you must start the NCP (Network Control Protocol) The PSION 3c requests the process SYS$RFSV on his own channel no. 3.
To start the RFSV-protocol, the command NCP-CONNECT-TO-SERVER is used. The requested process must work as a RFSV server. This Protocol isn't build in the PSION 5, so it isn't posible to grant acces from the PSION 5 to the PC! If the process was successfully started, then you will get the response NCP-CONNECT-RESPONSE. Here you can get the information about the channel number which is used on the PSION.
The PC can start the server SYS$RFSV on the PSION in the same way. An access from the PC to the PSION is possible for every PSION-model. The initial instruction from the PSION looks correspondingly and must use an own channel!
The command NCP-CONNECT-TO-SERVERS is built into the PLP (PSION Link Protocol) as shown below:
Header | Sequence | NCP channel | NCP-CONNECT-TO-SERVER | Footer | CRC | ||
---|---|---|---|---|---|---|---|
16 10 02 | 32 | 00 | Psion channel 03 |
Command 03 |
Process identifier "SYSSRFSV.*" |
10 03 | 12 34 |
The response to the request supplies the channel on the PC page and a result byte:
Header | Sequence | NCP channel | NCP-CONNECT-RESPONSE | Footer | CRC | |||
---|---|---|---|---|---|---|---|---|
16 10 02 | 33 | 00 | PC channel 02 |
Command 04 |
Psion channel 03 |
Result 00 |
10 03 | 12 34 |
If the start was successfully executed and acknowledged, then the RFSV protocol can be served over the reserved channels. The protocol is merged into the PLP. The cannel numbers are used to identify the protocol. The NCP manages, that the informations depending on a specified channel reaches the correct protocol-program.
In general tht RFSV protocol is build into the PLP as shown below.:
Header | Sequence | Channel numbers | Counter | RFSV protocol | Footer | CRC | |||
---|---|---|---|---|---|---|---|---|---|
16 10 02 | 32 | Recipient 03 |
Sender 02 |
01 | Command 2a 00 |
Size 04 00 |
Data 00 01 02... |
10 03 | 12 34 |
Bold | values represent fixed values, which are used exactly in the shown way! |
Italic | values represent examples, which transport the informations. |
All values, which are greater than 8 bits are transfered in reverse order! The LOW byte is first transfered over the line. After that the HIGH byte is transfered!
The following commands are defined in the RFSV protocol in the version 2:
The representation comes from the view of the programmer and not from view of the interface. Where the lowest byte is transferred first!
Instruction | Name | Description |
---|---|---|
00 00 | FOPEN | Opens a file, a folder or a whole device |
00 02 | FCLOSE | closes an opened file, folder or device |
00 04 | FREAD | Reads data from an opened file. |
00 06 | FDIRREAD | Gets further information from an opend directory. |
00 08 | FDEVICEREAD | Gets information from all available devices. |
00 0a | FWRITE | Writes data into an opened file. |
00 0c | FSEEK | Positions the file pointer in an opened file on a certain position |
00 0e | FFLUSH | Flushes the written buffer on the remote system to the disk. |
00 10 | FSETEOF | Sets the length of a file. You can shorten or extend the file. |
00 12 | FRENAME | Renames file or folders. It is aslo posible to do this device independent! |
00 14 | FDELETE | Deletes a file or a directory |
00 16 | FINFO | Inquires information to a certain file without to open it. |
00 18 | SFSTAT | Changes various status information of a file |
00 1a | PARSE | Checks the transferred file name for correctness and returns a correct absolute file name |
00 1c | MKDIR | Creates a directory |
00 1e | OPENUNIQUE | ?? |
00 20 | STATUS DEVICE | Gets information for a well-known device |
00 22 | PATHTEST | Checked whether the indicated path name is correct or not. |
00 24 | STATUS SYSTEM | Catches up general information from the file system. |
00 26 | CHANGEDIR | Inquires the target directory, for a "cd" instruction |
00 28 | SFDATE | The creation date of a file is set. |
00 2a | RESPONSE | The response to the appropriate instruction is included. |
The RFSV Client built in the PSION 3c (for the access to the PC file system) can use long file names, but has however with problems with case sensitive file systems. The protocol covers the possibilities, but the implementation has here various errors.
Michael Piepers homepage | |||||
BeOS Programs | |||||
PalmBeach | |||||
PSION Link Protocol description |