]> Kevux Git Server - fll/commitdiff
Update: FSS-000F (Simple Packet) Specification.
authorKevin Day <kevin@kevux.org>
Sat, 15 Jul 2023 02:47:06 +0000 (21:47 -0500)
committerKevin Day <kevin@kevux.org>
Sat, 15 Jul 2023 02:47:06 +0000 (21:47 -0500)
I have decided that the endianness bit must be first.
The String/Binary bit is now the second bit.
The remaining 6 Control bits are left undefined.

Do some cleanup up in the text.
Improve the language.
Make sure "italic" is used instead of "emphasis".

specifications/fss-000f.txt

index 001bab4def89256494719fbe2f177bf3aa947cd5..7fc906b3d408f008545c7b55bbe498d35e5dd0e5 100644 (file)
@@ -3,52 +3,75 @@
 # license: open-standard-license-1.0
 #
 # This file (assumed to be named fss-000f.txt) can be more easily read using the following iki_read commands:
-#   iki_read fss-000f.txt +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"'
+#   iki_read fss-000f.txt +Q -w -WWWW character "'" "'" code '"' '"' italic '"' '"' bold '"' '"'
 #
 # To read the "Featureless Settings Specification: 000f - Simple Packet" section of this file, use this command sequence:
-#   fss_basic_list_read fss-000f.txt +Q -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"'
+#   fss_basic_list_read fss-000f.txt +Q -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read +Q -w -WWWW character "'" "'" code '"' '"' italic '"' '"' bold '"' '"'
 #
 
 Featureless Settings Specification: 000f - Simple Packet:
   This is a network packet format that contains code:"FSS-000e (Payload)" within it.
 
-  The Simple Packet structure is described in blocks, of which are structured in bytes.
+  The bold:"Simple Packet" structure is described in blocks, of which are structured in bytes.
 
   There are only three blocks in this format\:
   1) Control Block.
   2) Size Block.
   3) Payload Block.
 
-  The Control Block is the first block in the packet and is considered endianless.
-  There exists only a single byte within the Control Block.
-  Regardless of the endianness of the packet, the leftmost bit is always the italic:"string" or italic:"binary" bit.
-  The second bit following that bit represents the endianness bit.
+  The bold:"Control Block" is the first block in the packet and is considered endianless.
+  There exists only a single byte within the bold:"Control Block" (8-bits).
+  Regardless of the endianness of the packet, leftmost bit is always the endianness bit.
+  The second bit following that endianness bit represents the italic:"string" or italic:"binary" bit.
 
-  The italic:"string" or italic:"binary" bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in binary format.
-  While the packet might be considered to be in string format, it is technically always in binary format due to the Control Block and Size Block.
-  This means that the bit designating the packet as a italic:"string" packet or a italic:"binary" packet is referring to whether or not the Payload Block is in italic:"string" format or is in italic:"binary" format.
+  Control Block Structure\:
+    code:"
+    [ Endianness Bit ] [ String / Binary Bit ] [ Remaining 6 bits (unused) ]
+    [ 0b0            ] [ 0b0                 ] [ 0b000000                  ]
+    "
 
   The endianness bit designates whether or not the packet is in big endian or little endian format.
   A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
-  All binary data within this packet, following the Control Block, must respect this endianness bit (including the Size Block).
+  All italic:"binary" data within this packet, following the Control Block, must respect this endianness bit (including the bold:"Size Block").
+
+  The italic:"string" or italic:"binary" bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in italic:"binary" format.
+  While the packet might be considered to be in string format, it is technically always in italic:"binary" format due to the bold:"Control Block" and bold:"Size Block".
+  This means that the italic:"binary" bit designating the packet as either a italic:"string" packet or a italic:"binary" packet is referring to whether or not the bold:"Payload Block" is in italic:"string" or italic:"binary" format.
+  The bold:"Payload Block" itself can contain italic:"binary" data even when in italic:"string" format as per code:"FSS-000e (Payload)".
 
   The remaining bits are not defined by this standard and are expected to be 0.
   Non-formal or local uses may utilize these remaining 6 bits as desired.
-  However, there may be additional standards that expand upon this and utilize these remaining Control bits.
-  Anything that utilizes these unused Control bits may add or remove additional Blocks after the Control Block as they see fit.
+  However, there may be additional standards that expand upon this and utilize these remaining bold:"Control" bits.
+  Anything that utilizes these unused bold:"Control" bits may add or remove additional bold:"Blocks" after the bold:"Control Block" as they see fit.
+  One possible use of the remaining bits is to designate a different variation of this bold:"Simple Packet" standard.
+
+  Size Block Structure\:
+    code:"
+    [ Endianness Bit ] [ String / Binary Bit ] [ Remaining 6 bits (unused) ]
+    [ 0b0            ] [ 0b0                 ] [ 0b000000                  ]
+    "
 
-  The Size Block is an unsigned 32-bit integer representing the size of the entire packet, including the Control Block and Size Block.
+  The bold:"Size Block" is an unsigned 32-bit integer representing the size of the entire packet, including the bold:"Control Block" and bold:"Size Block".
   This size must exactly match the packet to be a valid packet.
   The size represents number of bytes in the file.
-  The Control Block is 1 byte long and the Size Block is 4 bytes long and so the maximum available size is (2^32)-6.
+  The bold:"Control Block" is 1 byte long and the bold:"Size Block" is 4 bytes long, therefore the maximum available size of the entire bold:"Simple Packet" structure is code:"(2^32)-6".
+
+  Payload Block Structure\:
+    code:"
+    [ Payload Block  ]
+    [ size: (2^32)-6 ]
+    "
 
-  The Payload Block is not defined by this standard of that that it exists and should be in code:"FSS-000e (Payload)" format.
-  The code:"FSS-000e (Payload)" may be represented in either string format or binary format.
+  The bold:"Payload Block" is not defined by this standard of that that it exists and should be in code:"FSS-000e (Payload)" format.
+  The code:"FSS-000e (Payload)" may be represented in either italic:"string" format or italic:"binary" format.
   The code:"FSS-000e (Payload)" may contain multiple italic:"header"(s) but may only contain a single italic:"payload".
-  With this in mind, it is recommended that only a single italic:"header" be supported in the Payload Block.
+  With this in mind, it is recommended that only a single italic:"header" be supported in the bold:"Payload Block".
+  The italic:"payload" bold:"Content" may be in either a italic:"binary" or italic:"string" format regardless of the italic:"binary" bit in the bold:"Simple Packet" bold:"Header Block".
 
-  See the file:"fss-000e.txt" specification file for details on the syntax rules for the Payload Block.
+  See the file:"fss-000e.txt" specification file for details on the syntax rules for the bold:"Payload Block".
 
   Example Packet Structure\:
+    code:"
     [ Control Block ] [ Size Block                                  ] [ Payload Block         ]
     [ 0b10000000    ] [ 0b00000000 0b00000000 0b00000100 0b11010010 ] [ size: 1229 (1234 - 5) ]
+    "