As noted in your linked article:
All is not lost, though, as there are two viable workaround solutions.
The internal TNC does support KISS mode so all you need is a packet
program that supports KISS (many packet programs do) and let the
packet program handle the chore for you. This is by far the simplest
and least painfull way of working around the limitations of the
When using KISS mode, the AFSK modem should send whatever you put into the KISS frame. There are command codes which must be escaped in the KISS wrapping function of your program, but it is quite simple and I would be happy to supply you with some skeleton Java code which is easily decipherable.
Once you send the KISS frame from your program to the AFSK modem which operates in KISS mode, it will send the HDLC across the link. Essentially, you will get a stream of bytes to deal with on the receive side. The receive modem in KISS mode sends those bytes to the controlling program in a KISS wrapper. So your limitations are few when using KISS and KISS enabled AFSK modems.
Note also that there are OTHER CODECs out there beside plain old Ma Bell AFSK used in typical packet. UZ7HO's sound modem makes use of another handful of CODECs, and provides a KISS mode via TCP port which is very convenient for programming. Similarly, the Direwolf packet modem provides a KISS TCP port as well. FLDIGI even has some limited support for KISS with many of it's modem CODECs.