XXIIVV

Proquints are identifiers that are readable and pronounceable.

We propose encoding a 16-bit string as a proquint of alternating consonants and vowels as follows. Four-bits for consonants, and two-bits for vowels:

0 1 2 3 4 5 6 7 8 9 A B C D E F | 0 1 2 3
b d f g h j k l m n p r s t v z | a i o u

Separate proquints using dashes, which can go un-pronounced or be pronounced "eh".

0123 4567 89ab cdef
con vow con vow con

Here are some IP dotted-quads and their corresponding proquints.

127.0.0.1       lusab-babad | 147.67.119.2    natag-lisaf
63.84.220.193   gutih-tugad | 212.58.253.68   tibup-zujah
63.118.7.35     gutuk-bisog | 216.35.68.215   tobog-higil
140.98.193.141  mudof-sakat | 216.68.232.21   todah-vobij
64.255.6.200    haguz-biram | 198.81.129.136  sinid-makam
128.30.52.45    mabiv-gibot | 12.110.110.204  budov-kuras

Uxntal Implementation

A minimal encoder implementation of proquints in 77 bytes of Uxntal:

@proquint ( short* -- )

	( c1 ) DUP2 #0c ,&emit-con JSR
	( v1 ) DUP2 #0a ,&emit-vow JSR
	( c2 ) DUP2 #06 ,&emit-con JSR
	( v2 ) DUP2 #03 ,&emit-vow JSR
	( c3 ) #00 ,&emit-con JSR
	#20 EMIT

JMP2r
	&emit-con SFT2 #000f AND2 ;&con ADD2 LDA EMIT JMP2r
	&con "bdfghjklmnprstvz 
	&emit-vow SFT2 #0003 AND2 ;&vow ADD2 LDA EMIT JMP2r
	&vow "aiou

The previous encoder can be transformed into the following proquints:

favab bubum bumag pabip gahiv favab bimiv bumag 
pabag fisiv pabab bihiv pabab dobol kubuz pabab 
busus pabad fosum difab dobol kudaf kidak kitim 
konir kudit kunob lanog lidok lomuz pabab basus 
pabad hohum difab dobol kudad kojiz lihab