BSX Protocol - Communication between Server and Client

Commands sent by Client to Server

#VER version (VERsion)
Answer from the client with the clients version to the @RQV question sent by the server. Traditionally this consists of 4 letters inidicating the type (XWIN, AMIG, etc.), one space, and the version number formed from two digits separated by a dot. Examples: XWIN 3.8, AMIG 2.1, BSXP 1.0
#RQSscene (ReQuest Scene)
Requests the graphic (polygons) of the scene identified by scene. The server SHOULD reply with @DFSscene.graphic.
#RQOobject (ReQest Object)
Requests the graphic (polygons) of the object identified by object. The server SHOULD reply with @DFOobject.graphic.
micro_n, micro_ne, micro_e, micro_se, micro_s, micro_sw, micro_w, micro_nw
These commands allow the user to move his figure inside the scene. Most clients bind these to the cursor keys.

Commands sent by Server to Client

@RQV (ReQuest Version)
Requests the client version. This get's used during login. If the client does not reply by #VER (see above), the server SHOULD assume that the client is not BSX enabled and SHOULD NOT send other BSX messages.
@SCEscene. (SCEne)
Instructs the client to show the scene identified by scene. If the client does not know the graphic for that, it SHOULD request it by sending #RQS scene.
@DFSscene.graphic (DeFine Scene)
Defines the graphic to be used for the scene identified by scene. This is the reply to #RQS scene sent by the client.
@RFS (ReFresh Scene)
Instructs the client to perform all instructions received since the las @SCE command. This allows to execute several commands at once.
@VIOobject.xy (VIsualize Object)
Instructs the client to show the object identified by object at the coordinates x, y. Valid values for x are between 0 and 15 ("00"-"0F") including both. Valid values for y are between 0 and 7 ("00"-"07") including both. If the client does not know the graphic for object, it SHOULD request it by sending #RQO object. Remarks The X-coordinate gets multiplied by 32 and the Y-coordinate get's multiplied by 4. Objects with lower Y-coordinates may overlap those with higher. The center of the object ("80","80") get's located between ("00","00") and ("FF","20").
@DFOobject.graphic (DeFine Object)
Defines the graphic to be used for the object identified by object. This is the reply to #RQO object sent by the client.
@RMOobject. (ReMove Object)
Instructs the client to hide the object identified by object. Remark: If there are several objects with that ident in the scene, the last drawn will be hidden.
@TMS (TerMinate Session)
Instructs the client to close the session and to disconnect from the server.