There is a good explanation of ASCII available at this site - http://daffy.robelle.com/smugbook/ascii.html
This is a sample SSH_CMSG_REQUEST_PTY Packet (Packet Type 10) taken
from a Linux SSH client.
31 9d 65 fc dc 0a 00 00 00 05 76 74 31 30 32 00 00 00 36 00 00 00 51 00 00 00 21 00 00 00 00 c1 00 00 25 80 c0 00 00 25 80 01 03 02 1c 03 7f 04 15 05 04 06 00 07 00 08 11 09 13 0a 1a 0c 12 0d 17 0e 16 12 0f 1e 00 1f 00 20 00 21 00 22 00 23 00 24 01 25 00 26 01 27 00 28 00 29 00 32 01 33 01 34 00 35 01 36 01 37 01 38 00 39 00 3a 00 3b 01 3c 01 3d 01 3e 00 46 01 47 00 48 01 49 00 4a 00 4b 00 5a 01 5b 01 5c 00 5d 00 00 fe 06 d1 6a
PTY Encoded Data in red.
All this stuff took me a while to figure out and I only understood it after I put the client into debug mode and looked at the raw packets being sent. Hopefully the breakdown here will help you with your own ssh implementations.
The Breakdown
First two opcodes have 4 byte arguments
c1 00 00 25 80 - 129 TTY_OP_ISPEED - Specifies
Input Baud Rate
c0 00 00 25 80 - 128 TTY_OP_OSPEED - Specifies
Output Baud Rate
Rest of the Opcodes (01 - 5D) have one byte
arguments
HEXOP HEXARG
[DECIMAL OPCODE] Description
01 03 [01 VINTR ] - Interrupt
Character (CTRL-C)
02 1C [02 VQUIT ] - SIGQUIT Character
(CTRL-\)
03 7F [03 VERASE ] - Erase character
to left of cursor (DELETE Key)
04 16 [04 VKILL ] - Kill the
current line input (CTRL-V)
05 04 [05 VEOF ] - End
of File Character (CTRL-D)
06 00 [06 VEOL ] - End
of Line Character
07 00 [07 VEOL2 ] - Additional
End of line char
08 11 [08 VSTART ] - Continues Paused
output
09 13 [09 VSTOP ] - XON/XOFF
to pause listings (CTRL-S)
0A 1A [10 VDSUSP ] - Suspends current
program (CTRL-Z)
0C 12 [12 VREPRINT] - Reprint current line
(CTRL-R)
0D 17 [13 VWERASE ] - Erases a word to left
of character (CTRL-W)
0E 16 [14 VLNEXT ] - Enter next char
typed literally (CTRL-V)
12 0F [18 VDISCARD] - Flushing of output
terminal (CTRL-O)
The following settings are set to 00 (FALSE) or
01 (TRUE) for
their arguments.
1E 00 [30 IGNPAR ] - Ignore Parity (FALSE)
1F 00 [31 PARMRK ] - Mark parity and
framing errors (FALSE)
20 00 [32 INPCK ] - Enable checking
of parity errors (FALSE)
21 00 [33 ISTRIP ] - Strip Eighth Bit
(FALSE)
22 00 [34 INLCR ] - Map NL into
CR on input (FALSE)
23 00 [35 IGNCR ] - Ignore CR
on input (FALSE)
24 01 [36 ICRNL ] - Map CR to
NL on input (TRUE)
25 00 [37 IUCLC ] - Tranlsate
upper to lower case (FALSE)
26 01 [38 IXON ] - Enable
output flow control (TRUE)
27 00 [39 IXANY ] - Any char
will restart after stop (FALSE)
28 00 [40 IXOFF ] - Enable input
flow control (FALSE)
29 00 [41 IMAXBEL ] - Ring bel on input queue
full (FALSE)
32 01 [50 ISIG ] - Enable
INTR, QUIT, SUSP (TRUE)
33 01 [51 ICANON ] - Canonicalize input
lines (TRUE)
34 00 [52 XCASE ] - Enable input
and output of upper case with \ (FALSE)
35 01 [53 ECHO ] - Enable
echoing (TRUE)
36 01 [54 ECHOE ] - Visually
Erase chars (TRUE)
37 01 [55 ECHOK ] - Kill character
discards current line (TRUE)
38 00 [56 ECHONL ] - Echo New Line
even if ECHO is off (FALSE)
39 00 [57 NOFLSH ] - Don't flush after
interrupt (FALSE)
3A 00 [58 TOSTOP ] - Stop background
jobs from output (FALSE)
3B 01 [59 IEXTEN ] - Enable extensions
(TRUE)
3C 01 [60 ECHOCTL ] - Echo control characters
as ^char (TRUE)
3D 01 [61 ECHOKE ] - Visual erase for
line kill (TRUE)
3E 01 [62 PENDIN ] - Retype pending
input (TRUE)
46 01 [70 OPOST ] - Enable output
processing (TRUE)
47 00 [71 OLCUC ] - Conver lower
case to uppercase (FALSE)
48 01 [72 ONLCR ] - Map NL to
NL-CR (TRUE)
49 00 [73 OCRNL ] - Translate
carriage return to newline (output) (FALSE)
4A 00 [74 ONOCR ] - Translate
newline to carriage return - newline
(output). (FALSE)
4B 00 [75 ONLRET ] - Newline performs
a carriage return (output) (FALSE)
5A 01 [90 CS7 ] -
7 BIT mode (TRUE)
5B 01 [91 CS8 ] -
8 BIT mode (TRUE)
5C 00 [92 PARENB ] - Parity Enable
5D 00 [93 PARODD ] - Odd parity, else
even
00 - TTY_OP_END (End of
encoding)