BP BitPads Protocol

BitPads Enhancement Sub-Protocol v2.0

C0 Enhancement
Grammar

Three bits. 155 years. Structurally available since Baudot's 1870 telegraph code — never claimed until now.

The 32 C0 control characters (U+0000–U+001F) occupy the lower 5 bits of any byte in the 0x00–0xFF range. The upper 3 bits — bits 6, 7, and 8 — have been structurally unused since Baudot. The C0 Enhancement Grammar reclaims them as a universal flag matrix: P (Priority), A (Acknowledge Request), C (Continuation). Any of the 29 agreed transmission controls can carry all three flags simultaneously in a single byte.

This is not a new invention. It is the claiming of an inheritance that 155 years of protocol development — Murray, ASCII, ISO 6429, Unicode — left structurally available without ever using it.

Controls
29 unconditional + 4 conditional = 33 total
Signal slots
P1–P13 spanning all transmission layers
Flag combinations
8 states per control (2³ flag matrix)
Overhead
1 byte (Signal Slot Presence) per session

155 Years of Available Bits

The Baudot Lineage

The 5-bit atom of binary communication was established by Baudot in 1870. Every subsequent standard preserved this 5-bit space as the C0 control region. The upper bits grew from N/A to group identifiers to extended characters — but the 3 bits that would become the Enhancement flag matrix were never systematically used for transmission signalling.

YearStandardBitsLower 5 bitsUpper 3 bits
1870 Baudot telegraph 5 32 signals. The complete alphabet of mechanical communication. N/A — 5-bit only
1899 Murray code 5 Standardised Baudot. 32 controls. Shift states extend the set. N/A — 5-bit only
1963 ASCII 7 C0 controls in positions 0–31. Murray 5-bit space is the lower 5 of 7-bit ASCII. Bits 6–7: group IDs (00–11)
1976 ISO 6429 / C1 8 C0 preserved at 0x00–0x1F. C1 controls added at 0x80–0x9F. Bit 8: Latin-1 / C1 extension
1991 Unicode / UTF-8 var. C0 at U+0000–U+001F preserved. C1 at U+0080–U+009F. Multi-byte sequences above 127
2025 BitPads Enhancement 8 C0 code identity in lower 5 bits (bits 1–5). Bits 6–8: P · A · C flag matrix
The Sumerian principle. Sumerian scribes used minimal clay marks whose meaning expanded through shared context — the mark was compact, the codebook was in the reader's knowledge. Baudot's 5-bit codes used shift states as a codebook. ASCII used group bits. BitPads uses the parser state and signal slot architecture as its codebook. Minimal transmission. Rich shared interpretation. Five thousand years of the same design.

The 5+3 Split

Enhanced Byte Structure

Every enhanced C0 byte uses a 5+3 split. The lower 5 bits (1–5) carry the C0 code identity (0–31, matching the 32 original C0 controls). The upper 3 bits (6–8) carry the P, A, C flag matrix. All three flags can be set simultaneously. Eight flag states per control.

Enhanced C0 Byte — 5+3 Split (example: 0xA7 = 1010 0111)
8 1 P
Priority
7 0 A
Ack Req
6 1 C
Cont.
5 0 C0
code
4 0 C0
code
3 1 C0
code
2 1 C0
code
1 1 C0
code
Enhancement flags (P·A·C) C0 code identity (bits 1–5)
── DECODE: 0xA7 ─────────────────────────────────────────
Hex 0xA7
Binary 1 0 1 0 0 1 1 1
Bit 8 P = 1 → Priority active
Bit 7 A = 0 → No acknowledge request
Bit 6 C = 1 → Continuation — more follows
Bits1-500111 = 7 = BEL
────────────────────────────────────────────────────────
Result Priority BEL with Continuation
MeaningHigh-priority alert; receiver must treat as urgent; a further control follows in the same slot position
────────────────────────────────────────────────────────

Flag Combinations — All 8 States

P·A·CHex offsetInterpretationTypical use
0·0·0+0x00Plain control. No flags active.Standard C0 transmission control at declared slot
0·0·1+0x20Continuation — more controls follow in this slot.Multi-byte control sequence
0·1·0+0x40Acknowledge Request — receiver must confirm.Handshake initiation, session critical control
0·1·1+0x60Acknowledge + Continuation.Critical multi-byte sequence requiring confirmation
1·0·0+0x80Priority — elevated attention required.Alert, urgent status, priority session control
1·0·1+0xA0Priority + Continuation.Priority multi-byte control sequence
1·1·0+0xC0Priority + Acknowledge Request.Highest-urgency single control, must be confirmed
1·1·1+0xE0All flags. Priority + Ack + Continuation.Emergency multi-step sequence, full confirmation required

The Agreed Set

C0 Controls — 29 Unconditional + 4 Conditional

All 32 Unicode C0 controls are assessed against three criteria: transmission role independent of text formatting; meaningful flag combinations; safe on declared enhancement channels. 29 pass unconditionally. 4 are conditional (context-dependent — require non-text channel typing). Click any row to see flags, example byte, and typical use.

CodeNameStandard MeaningEnhancement RoleVerdict
0x00NULNull, fillerTyped padding / null keep-aliveINCLUDE
P/A/C: A=1 useful (acknowledge-request null = verified silence). C=1 useful (pad continuation). P=1 marginal.
Example byte: 0x40 = A-NUL = Acknowledge Request Null (verified null, receipt required).
Use: Keep-alive on long-gap sessions. Priority pad in time-critical streams.
0x01SOHStart of HeadingSession open bootstrap anchor. Sub-session open in signal slot.CORE
P/A/C: All three meaningful. P-SOH = priority session open. A-SOH = session open requiring confirmation. C-SOH = session open with continuation (more headers follow).
Example: 0xC1 = P+A-SOH = Priority Session Open, confirm before proceeding.
Use: At P1 (session open slot). In telegraph stream: opens an inner record context.
0x02STXStart of TextContent / stream open. Pre-announces payload arrival.CORE
Use: At P7 (before Wave content) or P5 (before record body). Signals receiver to switch context to content reading.
0x03ETXEnd of TextContent / stream close. Pairs with STX.CORE
Use: At P6 (after record body) or P8 (after Wave content). In telegraph emulation: stream close trigger alongside EOT.
0x04EOTEnd of TransmissionTransmission end, batch close, session end.CORE
Use: At P13 (session close). P-EOT = priority session end (emergency shutdown). A-EOT = session end with confirmation required. A legacy teleprinter receiving this byte closes the connection correctly — EOT is among the most legacy-compatible controls.
0x05ENQEnquiryStatus request, ACK request, session handshake.CORE
Use: At P5 (before record body). Enhanced: P-ENQ = priority status query. A-ENQ = query requiring response. In a two-way handshake: ENQ triggers ACK response.
0x06ACKAcknowledgePositive confirmation, receipt signal.CORE
Use: Response to A-flagged controls. At P6 (after record): confirms record receipt. P-ACK = priority acknowledgement (time-sensitive confirmation).
0x07BELBell / AlertAlert / priority notification event.INCLUDE
Use: Alert signalling at any slot. P-BEL = critical alert requiring immediate attention. In telegraph emulation: rings the terminal bell on legacy receivers while signalling an enhanced alert event to BitPads receivers.
0x08BSBackspaceCorrection / undo in transmission context.INCLUDE
Use: In compact command sequences: signals correction of the preceding command. A-BS = request confirmation that correction was accepted.
0x09HTHorizontal TabRecord separator / field separator in stream context.INCLUDE
Use: At P11 (component boundary). Separates fields within a structured stream. Compatible with tab-separated data receivers.
0x0ALFLine FeedBatch boundary / record group separator.INCLUDE
Use: At P12 (batch close). Signals end of a logical record group. Legacy terminals advance the line — BitPads receivers trigger batch conservation check.
0x0BVTVertical TabLayer boundary marker.INCLUDE
Use: At layer transitions (P3 before L2, P4 after L2). Signals decoder to change context from session layer to batch layer.
0x0CFFForm FeedSession separator — new session begins.INCLUDE
Use: Between sessions in a continuous channel. Clears session state. Legacy printers eject the page — BitPads receivers reset session context.
0x0DCRCarriage ReturnRecord reset / return to record start state.INCLUDE
Use: At record boundaries. In telegraph emulation: visible as carriage return to legacy receiver; signals record boundary to BitPads receiver.
0x0ESOShift OutConditional: Codebook shift — activate alternate codebook for nibble stream.CONDITIONAL
Condition: Requires non-text channel typing (category declared as binary pictography stream). On text channels, SO has deep embedding in character set switching and is unsafe to override.
Enhancement role: In binary pictography streams, SO triggers rolling codebook shift — the nibble stream switches to the alternate codebook until SI restores. See Telegraph Emulation II for full specification.
0x0FSIShift InConditional: Codebook shift — return to primary codebook.CONDITIONAL
Condition: Same as SO — requires non-text channel. SI/SO pair governs rolling codebook shifts in binary pictography streams.
0x10DLEData Link EscapeEnhancement escape prefix / extension sequence initiator.INCLUDE
Use: Prefixes extended enhancement sequences when the standard 5+3 encoding is insufficient. C-DLE = continuation (more escape bytes follow). The extension mechanism for the enhancement grammar itself.
0x11–0x14DC1–DC4Device Controls 1–4Device operation controls in enhancement-declared device streams.INCLUDE
DC1 (XON) / DC3 (XOFF): flow control. In enhancement context: DC1=start, DC2=set parameter, DC3=pause, DC4=stop. Meaningful in controlled hardware device streams.
0x15NAKNegative AcknowledgeRejection signal, retransmission request.CORE
Use: Response to A-flagged controls. P-NAK = priority rejection (emergency retransmit required). Complements ACK in the handshake system.
0x16SYNSynchronisationStream synchronisation marker.INCLUDE
Use: In continuous streams to maintain decoder synchronisation. P-SYN = priority sync (re-synchronise immediately after a gap or error).
0x17ETBEnd of Transmission BlockBlock boundary in structured data transmissions.INCLUDE
Use: Closes a data block within a larger transmission. Distinct from EOT (session end) and ETX (content end) — ETB marks a physical block boundary, not a logical boundary.
0x18CANCancelRecord cancel — discard current record and revert.INCLUDE
Use: At P5 or P6: cancels the in-progress record. P-CAN = priority cancel (emergency record discard). The conservation check excludes cancelled records.
0x19EMEnd of MediumStorage medium boundary — end of writable space.INCLUDE
Use: Signals that a physical storage boundary has been reached. Relevant in buffered transmission contexts.
0x1ASUBSubstituteReplacement value — substituted for a missing or corrupt data element.INCLUDE
Use: When a value field is unavailable but the record structure must be maintained. The receiver knows a substitution occurred and can log or flag the record.
0x1BESCEscapeConditional: Extension prefix — declares extended control or mode switch.CONDITIONAL
Condition: ESC has deep embedding in terminal control sequences (ANSI escape codes) and is unsafe to use generically on text or terminal channels. Permitted on declared-typed non-text enhancement channels.
0x1CFSFile SeparatorTop-level grouping boundary.INCLUDE
Use: Corresponds to the File Separator field in Layer 2 (bits 28–30). At P12 or P13: top-level file boundary marker. Legacy: separates logical files in a batch transmission.
0x1DGSGroup SeparatorGroup boundary — corresponds to Layer 2 Group Separator field.INCLUDE
Use: At P12 (batch close): signals group boundary. Corresponds to Layer 2 bits 19–22 Group Separator counter.
0x1ERSRecord SeparatorRecord boundary — corresponds to Layer 2 Record Separator field.INCLUDE
Use: At P6 (after record): marks record boundary. Corresponds to Layer 2 bits 23–27 Record Separator counter. In compound mode: the RS value is the implicit compound group ID.
0x1FUSUnit SeparatorUnit boundary — separates discrete units within a record or stream.INCLUDE
Use: At P11 (component boundary): separates components within a record (e.g. value block from time block). Fine-grained separator complementing RS and GS.

13 Positions

Signal Slot Architecture — P1 Through P13

Thirteen declared positions span the full transmission structure. Enhanced C0 bytes occupy these declared positions — content bytes occupy content positions. The two never overlap. The decoder always knows by position which type of byte it is reading. No DLE-stuffing. No escaping. No length prefix on every control byte.

Session
P1 — Session open (before L1) Layer 1 (8 bytes) P2 — After Layer 1 P13 — Session close
Batch
P3 — Before Layer 2 Layer 2 (6 bytes) P4 — After Layer 2 P12 — Batch close
Record
P5 — Before record body Layer 3 (5 bytes) P6 — After record body P11 — Component boundary
Wave
P7 — Before Wave content Wave content P8 — After Wave content
Stream
P9 — Stream open Stream content P10 — Stream close
SlotLayerPositionTypical control
P1SessionBefore Layer 1 headerSOH (session open), NUL (keep-alive)
P2SessionAfter Layer 1 headerACK (session accepted), NAK (CRC fail)
P3BatchBefore Layer 2 headerSTX (content start), VT (layer boundary)
P4BatchAfter Layer 2 headerENQ (batch ready query), ACK (batch context confirmed)
P5RecordBefore record bodyENQ (record ready), BEL (priority record incoming)
P6RecordAfter record bodyACK (record received), RS (record separator)
P7WaveBefore Wave contentSTX (content arriving), BEL (priority Wave)
P8WaveAfter Wave contentETX (content end), ACK (Wave confirmed)
P9StreamStream openSOH (stream open), STX (first content block)
P10StreamStream closeEOT (transmission end), ETX (content end)
P11RecordBetween componentsUS (unit separator), HT (field separator)
P12BatchBatch closeLF (batch boundary), GS (group separator), EOT
P13SessionSession closeEOT (session end), FS (file separator)

v2.0 Addition

Signal Slot Presence Byte

New in v2.0. An 8-bit bitmap transmitted after Meta byte 2 when Meta byte 2 bit 8 = 1. Each bit declares whether a specific slot (P1–P8) is active in this session. The decoder reads this byte at session open and knows exactly which byte positions to expect enhanced C0 controls at. Slots P9–P13 are declared via an extension byte when needed.

Signal Slot Presence Byte — P1 through P8 (P1 = MSB)
81P1
Sess open
70P2
After L1
60P3
Before L2
50P4
After L2
41P5
Bef. rec.
31P6
Aft. rec.
20P7
Bef. Wave
10P8
Aft. Wave
Example byte: 0x8C = 1000 1100 → P1, P5, P6 active · P9–P13 via extension byte when needed

With SSP byte = 0x8C (P1, P5, P6 active), the decoder expects:

  1. An enhanced C0 byte before Layer 1 at session open (P1)
  2. An enhanced C0 byte before each record body (P5)
  3. An enhanced C0 byte after each record body (P6)

At all other positions, bytes are content. No ambiguity. No marker bytes in content. No length prefix on every control.

No DLE-Stuffing Required

Channel Safety — Positional Disambiguation

The fundamental design choice of the signal slot architecture: enhanced C0 bytes occupy declared positions, never content positions. The decoder knows which type of byte it is reading by position, not by byte value. No byte in a content region needs escaping because its value matches a control code.

── TRANSMISSION SEQUENCE (SSP = P1, P5, P6 active) ─────
[P1 SLOT] 0xC1 ← P+A-SOH: Priority session open, confirm
Layer 1 64 bits of session header (8 bytes)
Layer 2 48 bits of batch header (6 bytes)
[P5 SLOT] 0x45 ← A-ENQ: Record ready query (ACK required)
Layer 3 40 bits of transaction record (5 bytes)
[P6 SLOT] 0x06 ← ACK: Record received and validated
[P5 SLOT] 0x05 ← ENQ: Next record ready
Layer 3 40 bits of transaction record (5 bytes)
[P6 SLOT] 0x06 ← ACK: Record received
────────────────────────────────────────────────────────
Content All bytes between slot positions are content.
Controls All controls are at declared slot positions only.
Escaping None required. No DLE-stuffing. No length prefix.
────────────────────────────────────────────────────────

Interactive Tool

Enhanced Byte Calculator

C0 Enhancement Encoder