Last active
April 21, 2026 12:45
-
-
Save mcnemesis/536cf82e471da5939c204532bbe7692e to your computer and use it in GitHub Desktop.
The GHOST MESSAGES Protocol in TEA | encode and decode between invisible and visible text messages!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| v:vABOUT:{#+##################+# | |
| Ghost Messages Protocol | |
| Encoder-N-Decoder v1.4 | |
| ------------------------------------------ | |
| Imagine coming across a [BLANK] text file full of "nothing" but space! | |
| It's like looking at a ghost.. normal eyes world see nothing!! | |
| This program, helps you do that for any text message; re-write it | |
| using nothing but space (what we call the Ghost Message code). | |
| But also it can do the reverse.. help you read messages that are invisible to those without this superpower. Handles all kinds of ascii-compatible text. | |
| ------------------------------------------ | |
| Original idea started in the 2010s at Nuchwezi Research. | |
| This is the TEA version, by Fut. Prof. Joseph Willrich Lutalo | |
| #+##################+#} | |
| ---[INTRO] | |
| y:vABOUT | i: | |
| #the GM ordered alphabet sequence for reference... | |
| #also includes Newline char, and # should always come last! | |
| v:az:{abcdefghijklmnopqrstuvwxyz 0123456789.?*/+-() | |
| !@:{}|[]ABCDEFGHIJKLMNOPQRSTUVWXYZ,"';&@%=^$~<>\_#} | |
| #---[Menu] | |
| y*:|v:vIN | |
| l:lPROMPT | |
| y!:vIN|f!:^0$:lMENU | |
| i!:{Enter Message to Process:}|i:|v:vIN | |
| j:lPROMPT | |
| l:lMENU | |
| i!:{Choose what to do: | |
| 1. Make Message Invisible | |
| 2. Read Invisible Message}|i:|v:vOPT | |
| f!:^[12]:lMENU:lPROCESS | |
| l:lPROCESS | |
| #first store msg.. | |
| y:vIN|v:vMESSAGE | |
| #go process.. | |
| y:vOPT|f:1:lENCODER:lDECODER | |
| #---[encoder] | |
| l:lENCODER | |
| y:vMESSAGE | |
| # first, we deal with special chars _ and # | |
| r!:{_}:{±} | |
| # [longest] for # | |
| r!:{#}:{#################################################################################################_} | |
| # [second longest] deal with special char _ | |
| r!:{±}:{################################################################################################_} | |
| # alpha.. | |
| r!:a:{#_} | |
| r!:b:{##_} | |
| r!:c:{###_} | |
| r!:d:{####_} | |
| r!:e:{#####_} | |
| r!:f:{######_} | |
| r!:g:{#######_} | |
| r!:h:{########_} | |
| r!:i:{#########_} | |
| r!:j:{##########_} | |
| r!:k:{###########_} | |
| r!:l:{############_} | |
| r!:m:{#############_} | |
| r!:n:{##############_} | |
| r!:o:{###############_} | |
| r!:p:{################_} | |
| r!:q:{#################_} | |
| r!:r:{##################_} | |
| r!:s:{###################_} | |
| r!:t:{####################_} | |
| r!:u:{#####################_} | |
| r!:v:{######################_} | |
| r!:w:{#######################_} | |
| r!:x:{########################_} | |
| r!:y:{#########################_} | |
| r!:z:{##########################_} | |
| r!:{ }:{###########################_} | |
| # numerals... | |
| r!:{0}:{############################_} | |
| r!:{1}:{#############################_} | |
| r!:{2}:{##############################_} | |
| r!:{3}:{###############################_} | |
| r!:{4}:{################################_} | |
| r!:{5}:{#################################_} | |
| r!:{6}:{##################################_} | |
| r!:{7}:{###################################_} | |
| r!:{8}:{####################################_} | |
| r!:{9}:{#####################################_} | |
| # symbols.. | |
| r!:{\.}:{######################################_} | |
| r!:{\?}:{#######################################_} | |
| r!:{\*}:{########################################_} | |
| r!:{/}:{#########################################_} | |
| r!:{\+}:{##########################################_} | |
| r!:{-}:{###########################################_} | |
| r!:{\(}:{############################################_} | |
| r!:{\)}:{#############################################_} | |
| r!:{\n}:{##############################################_} | |
| r!:{!}:{###############################################_} | |
| r!:{@}:{################################################_} | |
| r!:{:}:{#################################################_} | |
| r!:{\{}:{##################################################_} | |
| r!:{\}}:{###################################################_} | |
| r!:{\|}:{####################################################_} | |
| r!:{\[}:{#####################################################_} | |
| r!:{\]}:{######################################################_} | |
| # UPPER ALPHA... | |
| r!:{A}:{#######################################################_} | |
| r!:{B}:{########################################################_} | |
| r!:{C}:{#########################################################_} | |
| r!:{D}:{##########################################################_} | |
| r!:{E}:{###########################################################_} | |
| r!:{F}:{############################################################_} | |
| r!:{G}:{#############################################################_} | |
| r!:{H}:{##############################################################_} | |
| r!:{I}:{###############################################################_} | |
| r!:{J}:{################################################################_} | |
| r!:{K}:{#################################################################_} | |
| r!:{L}:{##################################################################_} | |
| r!:{M}:{###################################################################_} | |
| r!:{N}:{####################################################################_} | |
| r!:{O}:{#####################################################################_} | |
| r!:{P}:{######################################################################_} | |
| r!:{Q}:{#######################################################################_} | |
| r!:{R}:{########################################################################_} | |
| r!:{S}:{#########################################################################_} | |
| r!:{T}:{##########################################################################_} | |
| r!:{U}:{###########################################################################_} | |
| r!:{V}:{############################################################################_} | |
| r!:{W}:{#############################################################################_} | |
| r!:{X}:{##############################################################################_} | |
| r!:{Y}:{###############################################################################_} | |
| r!:{Z}:{################################################################################_} | |
| # extension... | |
| r!:{,}:{#################################################################################_} | |
| r!:{"}:{##################################################################################_} | |
| r!:{'}:{###################################################################################_} | |
| r!:{;}:{####################################################################################_} | |
| r!:{&}:{######################################################################################_} | |
| r!:{@}:{#######################################################################################_} | |
| r!:{%}:{########################################################################################_} | |
| r!:{=}:{#########################################################################################_} | |
| r!:{\^}:{##########################################################################################_} | |
| r!:{\$}:{###########################################################################################_} | |
| r!:{~}:{############################################################################################_} | |
| r!:{<}:{#############################################################################################_} | |
| r!:{>}:{##############################################################################################_} | |
| r!:{\\}:{###############################################################################################_} | |
| #DO NOT eliminate what's not encoded... | |
| #d!:{[#_]} | |
| #then unmask.. | |
| r!:{#}:{ } | |
| r!:{_}:{ | |
| } | |
| #------------'_..!------------------------| | |
| #NOTE: because copying pure space/ghost-messages | |
| #might be denied, we pre+suffix a single dot. | |
| #------------'_..!------------------------| | |
| x:.|x!:. | |
| # and that's it! | |
| # whatever appears in the output besides the dot affixes means | |
| # it's not handled by the ghost-message alphabet | |
| q!: | |
| #---[DONE ENCODING] | |
| #---[decoder] | |
| l:lDECODER | |
| y:vMESSAGE | |
| # for GM, strip .-affixes | |
| d:{^\.}|m!:|d:{^\.}|m!: | |
| r!:{\n}:{_} | |
| r!:{ }:{#} | |
| # handle special char _ and # first.. | |
| r!:{#################################################################################################_}:{-HASH-} | |
| r!:{################################################################################################_}:{±} | |
| # extensions.. | |
| r!:{###############################################################################################_}:{\} | |
| r!:{##############################################################################################_}:{>} | |
| r!:{#############################################################################################_}:{<} | |
| r!:{############################################################################################_}:{~} | |
| r!:{###########################################################################################_}:{$} | |
| r!:{##########################################################################################_}:{^} | |
| r!:{#########################################################################################_}:{=} | |
| r!:{########################################################################################_}:{%} | |
| r!:{#######################################################################################_}:{@} | |
| r!:{######################################################################################_}:{&} | |
| #r!:{#####################################################################################_}:{_} | |
| r!:{####################################################################################_}:{;} | |
| r!:{###################################################################################_}:{'} | |
| r!:{##################################################################################_}:{"} | |
| r!:{#################################################################################_}:{,} | |
| # UPPER ALPHA | |
| r!:{################################################################################_}:{Z} | |
| r!:{###############################################################################_}:{Y} | |
| r!:{##############################################################################_}:{X} | |
| r!:{#############################################################################_}:{W} | |
| r!:{############################################################################_}:{V} | |
| r!:{###########################################################################_}:{U} | |
| r!:{##########################################################################_}:{T} | |
| r!:{#########################################################################_}:{S} | |
| r!:{########################################################################_}:{R} | |
| r!:{#######################################################################_}:{Q} | |
| r!:{######################################################################_}:{P} | |
| r!:{#####################################################################_}:{O} | |
| r!:{####################################################################_}:{N} | |
| r!:{###################################################################_}:{M} | |
| r!:{##################################################################_}:{L} | |
| r!:{#################################################################_}:{K} | |
| r!:{################################################################_}:{J} | |
| r!:{###############################################################_}:{I} | |
| r!:{##############################################################_}:{H} | |
| r!:{#############################################################_}:{G} | |
| r!:{############################################################_}:{F} | |
| r!:{###########################################################_}:{E} | |
| r!:{##########################################################_}:{D} | |
| r!:{#########################################################_}:{C} | |
| r!:{########################################################_}:{B} | |
| r!:{#######################################################_}:{A} | |
| # symbols.. | |
| r!:{######################################################_}:] | |
| r!:{#####################################################_}:[ | |
| r!:{####################################################_}:{|} | |
| r!:{###################################################_}:{}} | |
| r!:{##################################################_}:{{} | |
| r!:{#################################################_}:{:} | |
| r!:{################################################_}:@ | |
| r!:{###############################################_}:! | |
| r!:{##############################################_}:{ | |
| } | |
| r!:{#############################################_}:{)} | |
| r!:{############################################_}:{(} | |
| r!:{###########################################_}:- | |
| r!:{##########################################_}:+ | |
| r!:{#########################################_}:/ | |
| r!:{########################################_}:* | |
| r!:{#######################################_}:? | |
| r!:{######################################_}:. | |
| # numerals | |
| r!:{#####################################_}:9 | |
| r!:{####################################_}:8 | |
| r!:{###################################_}:7 | |
| r!:{##################################_}:6 | |
| r!:{#################################_}:5 | |
| r!:{################################_}:4 | |
| r!:{###############################_}:3 | |
| r!:{##############################_}:2 | |
| r!:{#############################_}:1 | |
| r!:{############################_}:0 | |
| # lower alpha.. | |
| r!:{###########################_}:{ } | |
| r!:{##########################_}:z | |
| r!:{#########################_}:y | |
| r!:{########################_}:x | |
| r!:{#######################_}:w | |
| r!:{######################_}:v | |
| r!:{#####################_}:u | |
| r!:{####################_}:t | |
| r!:{###################_}:s | |
| r!:{##################_}:r | |
| r!:{#################_}:q | |
| r!:{################_}:p | |
| r!:{###############_}:o | |
| r!:{##############_}:n | |
| r!:{#############_}:m | |
| r!:{############_}:l | |
| r!:{###########_}:k | |
| r!:{##########_}:j | |
| r!:{#########_}:i | |
| r!:{########_}:h | |
| r!:{#######_}:g | |
| r!:{######_}:f | |
| r!:{#####_}:e | |
| r!:{####_}:d | |
| r!:{###_}:c | |
| r!:{##_}:b | |
| r!:{#_}:a | |
| # finally, re-handle special chars... | |
| r!:{-HASH-}:{#} | |
| r!:{±}:{_} | |
| #------------'_..!------------------------| | |
| # NOTE: in traditional nomenclature | |
| # wht we've just done wld be akin to | |
| # clairvoyance! the stuff o ghost hunters! | |
| #------------'_..!------------------------| | |
| #---[DONE DECODING] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment