
                    *****   FunnyChars.cmd V1.12   *****

.. This key TOGGLES the "Funny Chars" PreKey ON/OFF.
<ctl-a:
    if (inUse(preKey)) {
        putMsg("SPECIAL CHARS & DEAD KEYS KILLED")
        while (not inputWaiting) delay(5)
        putMsg(" ")
        killKey(preKey)
    }
    else {
        putMsg("TURNING SPECIAL CHARS & DEAD KEYS ON") 
        copyKey(preKey,14)                  ..  '14' is one of 'unused slots'
        equateNum(n96,0)
        while (not inputWaiting) delay(5)
        putMsg(" ")
    }
>

.. This will act as our FANCY HELP KEY
<28:
        
text(" ",0,0,4,-2)
text("Press HELP again to resume editing",0,1,3,0)
text(" ",1,0,4,-2)
text("1",1,62,0,1) text("-->",1,64,4,3) text(" ¹ ",1,67,2,3) text("|",1,70,6,1)
text("First press a                       ",2,13,6,0)
    text("2",2,62,0,1) text("-->",2,64,4,3) text(" ² ",2,67,2,3)
        text("|",2,70,6,1) text("ALT",2,73,5,3)
text("------------------>",3,10,4,20) text(" \"DEAD KEY\" ",3,32,5,0)
    text("3",3,62,0,1) text("-->",3,64,4,3) text(" ³ ",3,67,2,3)
        text("|",3,70,6,1) 
text("___________",4,3,4,11) text("and then",4,10,6,8)
    text("__________",4,18,4,15) text("4",4,62,0,1) text("-->",4,64,4,3)
        text(" ¢ ",4,67,2,3) text("|",4,70,6,1) text("with",4,73,0,4)
            text("combination:",4,32,5,0)
text("|",5,3,4,1) text("5",5,62,0,1) text("-->",5,64,4,3) text(" ¼ ",5,67,2,3)
    text("|",5,70,6,1)
text("v",6,3,4,1) text("ALT-f",6,15,5,5) text("ALT-g",6,24,5,5)
    text("ALT-h",6,33,5,5) text("ALT-j",6,42,5,5) text("ALT-k",6,51,5,5)
        text("6",6,62,0,1) text("-->",6,64,4,3) text(" ½ ",6,67,2,3)
            text("|",6,70,6,1) text("these",6,72,0,5) text("|",6,78,4,1)
text("7",7,62,0,1) text("-->",7,64,4,3) text(" ¾ ",7,67,2,3)
    text("|",7,70,6,1) text("|",7,78,4,1)
text("to get",8,6,6,6) text("|",8,44,4,1) text("8",8,62,0,1)
    text("-->",8,64,4,3) text(" · ",8,67,2,3) text("|",8,70,6,1)
        text("gives",8,72,2,5) text("|",8,78,4,1)         
text("a",9,3,0,1) text("------>",9,6,4,8) text(" á ",9,16,2,3)
    text(" à ",9,25,2,3) text(" â ",9,34,2,3) text("|",9,44,4,1)
        text(" ä ",9,52,2,3) text("9",9,62,0,1) text("-->",9,64,4,3)
            text(" « ",9,67,2,3) text("|",9,70,6,1) text("<--",9,72,4,3)
                text("v",9,78,4,1)
text("A",10,3,0,1) text("------>",10,6,4,8) text(" Á ",10,16,2,3)
    text(" À ",10,25,2,3) text(" Â ",10,34,2,3) text("|",10,44,4,1)
        text(" Ä ",10,52,2,3) text("0",10,62,0,1) text("-->",10,64,4,3)
            text(" » ",10,67,2,3) text("|",10,70,6,1)
                text(" Å ",11,71,2,3)
text("|",11,44,4,1) text("q",11,62,0,1) text("-->",11,64,4,3)
    text(" å ",11,67,2,3) text("|",11,70,6,1) text(" Å ",11,71,2,3)
        text("<--",11,74,4,3) text("Q",11,78,0,1) 
text("e",12,3,0,1) text("------>",12,6,4,8) text(" é ",12,16,2,3)
    text(" è ",12,25,2,3) text(" ê ",12,34,2,3) text("v",12,44,4,1)
        text(" ë ",12,52,2,3) text("w",12,62,0,1) text("-->",12,64,4,3)
            text(" ° ",12,67,2,3) text("|",12,70,6,1) text("   ",12,71,2,3)
text("E",13,3,0,1) text("------>",13,6,4,8) text(" É ",13,16,2,3)
    text(" È ",13,25,2,3) text(" Ê ",13,34,2,3) text(" Ë ",13,52,2,3)
        text("e",13,62,0,1) text("-->",13,64,4,3) text(" © ",13,67,2,3)
            text("|",13,70,6,1) text("   ",13,71,2,3)
text("r",14,62,0,1) text("-->",14,64,4,3) text(" ® ",14,67,2,3)
    text("|",14,70,6,1) text("   ",14,71,2,3)
text("i",15,3,0,1) text("------>",15,6,4,8) text(" í ",15,16,2,3)
    text(" ì ",15,25,2,3) text(" î ",15,34,2,3) text(" ï ",15,52,2,3)
        text("t",15,62,0,1) text("-->",15,64,4,3) text(" þ ",15,67,2,3)
            text("|",15,70,6,1) text(" Þ ",15,71,2,3) text("<--",15,74,4,3)
                text("T",15,78,0,1)
text("I",16,3,0,1) text("------>",16,6,4,8) text(" Í ",16,16,2,3)
    text(" Ì ",16,25,2,3) text(" Î ",16,34,2,3) text(" Ï ",16,52,2,3)
        text("y",16,62,0,1) text("-->",16,64,4,3) text(" ¤ ",16,67,2,3)
            text("|",16,70,6,1) text(" ¥ ",16,71,2,3) text("<--",16,74,4,3)
                text("Y",16,78,0,1)
text("u",17,62,0,1) text("-->",17,64,4,3) text(" µ ",17,67,2,3)
    text("|",17,70,6,1) text("   ",17,71,2,3)
text("n",18,3,0,1) text("------------------------------->",18,7,4,35)
    text(" ñ ",18,43,2,3) text("i",18,62,0,1) text("-->",18,64,4,3)
        text(" ¡ ",18,67,2,3) text("|",18,70,6,1) text(" ¦ ",18,71,2,3)
            text("<--",18,74,4,3) text("I",18,78,0,1)   
text("N",19,3,0,1) text("------------------------------->",19,7,4,35)
    text(" Ñ ",19,43,2,3) text("o",19,62,0,1) text("-->",19,64,4,3)
        text(" ø ",19,67,2,3) text("|",19,70,6,1) text(" Ø ",19,71,2,3)
            text("<--",19,74,4,3) text("O",19,78,0,1)  
text("p",20,62,0,1) text("-->",20,64,4,3) text(" ¶ ",20,67,2,3)
    text("|",20,70,6,1) text("   ",20,71,2,3)
text("o",21,3,0,1) text("------>",21,6,4,8) text(" ó ",21,16,2,3)
    text(" ò ",21,25,2,3) text(" ô ",21,34,2,3) text(" õ ",21,43,2,3)
        text(" ö ",21,52,2,3) text("a",21,62,0,1) text("-->",21,64,4,3)
            text(" æ ",21,67,2,3) text("|",21,70,6,1) text(" Æ ",21,71,2,3)
                text("<--",21,74,4,3) text("A",21,78,0,1) 
text("O",22,3,0,1) text("------>",22,6,4,8) text(" Ó ",22,16,2,3)
    text(" Ò ",22,25,2,3) text(" Ô ",22,34,2,3) text(" Õ ",22,43,2,3)
        text(" Ö ",22,52,2,3) text("s",22,62,0,1) text("-->",22,64,4,3)
            text(" ß ",22,67,2,3) text("|",22,70,6,1) text(" § ",22,71,2,3)
                text("<--",22,74,4,3) text("S",22,78,0,1)
text("d",23,62,0,1) text("-->",23,64,4,3) text(" ð ",23,67,2,3)
    text("|",23,70,6,1) text(" Ð ",23,71,2,3) text("<--",23,74,4,3)
        text("D",23,78,0,1)
text("u",24,3,0,1) text("------>",24,6,4,8) text(" ú ",24,16,2,3)
    text(" ù ",24,25,2,3) text(" û ",24,34,2,3) text(" ü ",24,52,2,3)
        text("l",24,62,0,1) text("-->",24,64,4,3) text(" £ ",24,67,2,3)
            text("|",24,70,6,1) text("   ",24,71,2,3)
text("U",25,3,0,1) text("------>",25,6,4,8) text(" Ú ",25,16,2,3)
    text(" Ù ",25,25,2,3) text(" Û ",25,34,2,3) text(" Ü ",25,52,2,3)
        text("z",25,62,0,1) text("-->",25,64,4,3) text(" ± ",25,67,2,3)
            text("|",25,70,6,1) text(" ¬ ",25,71,2,3) text("<--",25,74,4,3)
                text("Z",25,78,0,1)  
text("c",26,62,0,1) text("-->",26,64,4,3) text(" ç ",26,67,2,3)
    text("|",26,70,6,1) text(" Ç ",26,71,2,3) text("<--",26,74,4,3)
        text("C",26,78,0,1)
text("y",27,3,0,1) text("------>",27,6,4,8) text(" ý ",27,16,2,3)
    text(" ÿ ",27,52,2,3) text("v",27,62,0,1) text("-->",27,64,4,3)
        text(" ª ",27,67,2,3) text("|",27,70,6,1)
            text("   ",27,71,2,3)
text("Y",28,3,0,1) text("------>",28,6,4,8) text(" Ý ",28,16,2,3)
    text(" Y ",28,52,2,3) text("b",28,62,0,1) text("-->",28,64,4,3)
        text(" º ",28,67,2,3) text("|",28,70,6,1) text("   ",28,71,2,3)
text("n",29,62,0,1) text("-->",29,64,4,3) text(" ­ ",29,67,2,3)
    text("|",29,70,6,1) text(" ¯ ",29,71,2,3) text("<--",29,74,4,3)
        text("N",29,78,0,1)
        
text("You evidently are in INTERLACE MODE!",45,20,6,50) .. <- help yourself!

label(0)
        getKey(n94)
        while (not eqNum(n94,normal-HELP)) {
            delay(5)                                .. do not refresh
            goto label(0)
        }
>          

This key is WAITING TO BE COPIED to preKey by our ctl-a.
<14:
     .. if (eqNum(macroNum,shftAltCtl-ESC)) killKey(preKey) .. escape hatch
     equateNum(n95,n96)                         .. store old macroNum in n95
     equateNum(n96,macroNum)                    .. store new macroNum in n96
     
     if (eqNum(macroNum,shftCtl-a)) {
        text(" NEXT KEY-COMBINATION WILL BE TREATED AS COMMAND!",0,0,3,57)
        while (not inputWaiting)
            delay(5)
     }
     if (eqNum(n95,shftCtl-a)) {            .. previous combination was this
        putMsg(" ")
        equateNum(inputChar,0)                      .. TYPE NOTHING...
        equateNum(macroNum,0)                       .. RETURN DOING NOTHING
        return                  .. JUST EXECUTE IF THERE IS A COMMAND ATTACHED
     }
     if (eqNum(macroNum,normal-HELP)) {
        runKey(28)                              .. our special HELP has slot 28
        putMsg("                                            ")
        refreshDisplay
        equateNum(inputChar,0)                  .. just in case
        equateNum(macroNum,0)
        return
     }  
     if (gtNum(macroNum,370) | (eqNum(macroNum,69)) | 
           (gtNum(macroNum,70) & (not gtNum(macroNum,102))) |
              (gtNum(macroNum,162) & (not gtNum(macroNum,204))) |
                 (gtNum(macroNum,267) & (not gtNum(macroNum,312)))) { 
                 
        equateNum(inputChar,0)              .. let UEdit just do...    
        equateNum(macroNum,n96)             .. what it would have done anyway
     }
     else
        switch(n96) {                       .. NON-PRINTABLES and KEYPAD KEYS
                                            .. normal-KEYS (no qualifiers)
                case(15)
                case(29)
                case(30)
                case(31)
                case(45)
                case(46)
                case(47)
                case(60)
                case(61)
                case(62)
                case(63)
                case(67)
                                                        .. SHIFT-PRINTABLES
                case(119) 
                case(133) 
                case(134) 
                case(135) 
                case(149) 
                case(150) 
                case(151) 
                case(152) 
                case(164) 
                case(165) 
                case(166) 
                case(167) 
                                                        .. ALT-PRINTABLES
                case(223)
                case(237)
                case(238)
                case(239)
                case(253)
                case(254)
                case(255)
                case(256)
                case(268)
                case(269)
                case(270)
                case(271) { equateNum(inputChar,0)
                            return }

                                                        .. DEAD KEYS
                case(247)       .. alt-k
                case(246)       .. alt-j
                case(245)       .. alt-h
                case(244)       .. alt-g
                case(243)       .. alt-f
                        
                         { goto label(60) }
                         
                                                        .. ALT-PRINTABLES
                case(209) { typeChar("¹") 
                                goto label(60) }
                case(210) { typeChar("²") 
                                goto label(60) }
                case(211) { typeChar("³") 
                                goto label(60) }
                            
                case(212) { typeChar("¢") 
                                goto label(60) }
                case(213) { typeChar("¼") 
                                goto label(60) }
                case(214) { typeChar("½") 
                                goto label(60) }
                case(215) { typeChar("¾") 
                                goto label(60) }
                case(216) { typeChar("·") 
                                goto label(60) }
                case(217) { typeChar("«") 
                                goto label(60) }
                case(218) { typeChar("»") 
                                goto label(60) }
                case(224) {typeChar("å") 
                                goto label(60) }
                case(225) { typeChar("°") 
                                goto label(60) }
                case(226) { typeChar("©") 
                                goto label(60) }
                case(227) { typeChar("®") 
                                goto label(60) }
                case(228) { typeChar("þ") 
                                goto label(60) }
                case(229) { typeChar("¤") 
                                goto label(60) }
                case(230) { typeChar("µ") 
                                goto label(60) }
                case(231) { typeChar("¡") 
                                goto label(60) }
                case(232) {typeChar("ø") 
                                goto label(60) }
                case(233) { typeChar("¶") 
                                goto label(60) }
                case(240) {typeChar("æ") 
                                goto label(60) }
                case(241) { typeChar("ß") 
                                goto label(60) }
                case(242) { typeChar("ð") 
                                goto label(60) }
                case(248) { typeChar("£") 
                                goto label(60) }
                case(257) {typeChar("±") 
                                goto label(60) }
                case(258) { typeChar("×") 
                                goto label(60) }
                case(259) { typeChar("ç") 
                                goto label(60) }
                case(260) { typeChar("ª") 
                                goto label(60) }
                case(261) { typeChar("º") 
                                goto label(60) }
                case(262) { typeChar("­") 
                                goto label(60) }
                case(263) { typeChar("¸") 
                                goto label(60) }                                    

                                                    .. shftAlt-PRINTABLES
                case(328) { typeChar("Å") 
                                goto label(60) }          
                case(332) { typeChar("Þ") 
                                goto label(60) }          
                case(333) { typeChar("¥") 
                                goto label(60) }          
                case(335) { typeChar("¦") 
                                goto label(60) }          
                case(336) { typeChar("Ø") 
                                goto label(60) }          
                case(344) { typeChar("Æ") 
                                goto label(60) }          
                case(345) { typeChar("§") 
                                goto label(60) }          
                case(346) { typeChar("Ð") 
                                goto label(60) }
                 case(361) { typeChar("¬") 
                                goto label(60) }  
                case(362) { typeChar("÷") 
                                goto label(60) }          
                case(363) { typeChar("Ç") 
                                goto label(60) }          
                case(366) { typeChar("¯") 
                                goto label(60) }          
                case(367) { typeChar("¿") 
                                goto label(60) }
                
                                               .. normal-KEYS ALTERED by DEAD 
                case(21)    { goto label(50) }                     .. y
                case(22)    { goto label(51) }                     .. u
                case(24)    { goto label(52) }                     .. o
                case(54)    { goto label(53) }                     .. n
                case(23)    { goto label(54) }                     .. i
                case(18)    { goto label(55) }                     .. e
                case(32)    { goto label(56) }                     .. a
                                               
                                               .. shft-KEYS ALTERED by DEAD
                case(125)   { goto label(11) }                     .. "Y"
                case(126)   { goto label(12) }                     .. "U"
                case(128)   { goto label(13) }                     .. "O"
                case(158)   { goto label(14) }                     .. "N"
                case(127)   { goto label(15) }                     .. "I"
                case(122)   { goto label(16) }                     .. "E"
                case(136)   { goto label(17) }                     .. "A"
          
            default { if (gtNum(383,macroNum) & gtNum(macroNum,208))      
                        beepDisplay
                      equateNum(macroNum,0)
                      return
                    }
        }       
    
..  =======================   "SUBRUTINES" ========================

label(11)   
               switch(n95) {                            
                case(247)   { equateNum(inputChar,0)
                                typeChar("Y") }                       
                case(243)   { equateNum(inputChar,0)
                                typeChar("Ý") }                       
                           }                        
                return

label(12)
               switch(n95) {                     
                case(247)   { equateNum(inputChar,0)
                                typeChar("Ü") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("Û") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("Ù") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("Ú") }
                           }
                return

label(13)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("Ö") }
                case(246)   { equateNum(inputChar,0)
                                typeChar("Õ") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("Ô") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("Ò") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("Ó") }
                           }
                return
                
label(14)
               switch(n95) {
                case(246)   { equateNum(inputChar,0)
                                typeChar("Ñ") }
                           }
                return
                                
label(15)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("Ï") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("Î") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("Ì") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("Í") }
                           }
                 return
                                
label(16)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("Ë") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("Ê") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("È") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("É") }
                           }
                return

label(17)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("Ä") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("Â") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("À") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("Á") }
                           }
                return
                
label(50)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("ÿ") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("ý") }
                           }
                return
                
label(51)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("ü") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("û") } 
                case(244)   { equateNum(inputChar,0)
                                typeChar("ù") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("ú") }
                           }
                return
             
label(52)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("ö") }
                case(246)   { equateNum(inputChar,0)
                                typeChar("õ") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("ô") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("ò") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("ó") }
                           }
                return
              
label(53)
               switch(n95) {
                case(246)   { equateNum(inputChar,0)
                                typeChar("ñ") }
                           }           
                 return
                 
label(54)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("ï") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("î") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("ì") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("í") }
                           }
                 return
                 
label(55)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("ë") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("ê") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("è") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("é") }
                           }
                 return
                
label(56)
               switch(n95) {
                case(247)   { equateNum(inputChar,0)
                                typeChar("ä") }
                case(245)   { equateNum(inputChar,0)
                                typeChar("â") }
                case(244)   { equateNum(inputChar,0)
                                typeChar("à") }
                case(243)   { equateNum(inputChar,0)
                                typeChar("á") }
                           }
                return

.. ===============================================

label(60)   equateNum(inputChar,0)
            equateNum(macroNum,0)

>       .. /*** *** End of Funny Chars Software System V1.12 *** ***/

========================================================================
