"$BLOCK--.REX": Difference between revisions

From Rosetta Code
Content added Content deleted
m (→‎$BLOCK__.REX: adjusted two assignment statements that had their character value expanded by cut and paste (essentially, they were treated as tab characters) by this website.)
m (→‎$BLOCK__.REX: fixed the '7f'x glyph (within the ASCII character (grid) table (part of a REXX comment).)
Line 39: Line 39:
│6 ║ ` │ a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k │ l │ m │ n │ o ║6│
│6 ║ ` │ a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k │ l │ m │ n │ o ║6│
│ ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
│ ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
│7 ║ p │ q │ r │ s │ t │ u │ v │ w │ x │ y │ z │ { │ | │ } │ ~ │  ║7│
│7 ║ p │ q │ r │ s │ t │ u │ v │ w │ x │ y │ z │ { │ | │ } │ ~ │ ║7│
│ ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
│ ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
│8 ║ Ç │ ü │ é │ â │ ä │ à │ å │ ç │ ê │ ë │ è │ ï │ î │ ì │ Ä │ Å ║8│
│8 ║ Ç │ ü │ é │ â │ ä │ à │ å │ ç │ ê │ ë │ è │ ï │ î │ ì │ Ä │ Å ║8│

Revision as of 07:12, 13 August 2015

$BLOCK__.REX

This Classic REXX program is used to generate (create) the   $BLOCK.REX   program. <lang rexx>/**/trace o;parse arg !;if !all(arg()) then exit;if !cms then address ;signal on halt;signal on novalue;signal on syntax

/*┌────────────────────────────────────────────────────────────────────┐

 │This REXX program is too large for normal RX to handle.  Therefore, │
 │it needs to be compiled with:         REXX  /l  /o  $BLOCK__        │
 ├─────where:                                                         │
 │ /l  indicates a "Large" REXX program,  and                         │
 │ /o  indicates to REXX to "optimize" the REXX program  (instead of  │
 │     executing it);  the optimization process appends P─code to the │
 │     end of the REXX program.  To edit this program, the  $  program│
 │     should be used as it deletes the P─code, edits it (with KEDIT),│
 │     and lastly invokes the above mentioned REXX command.           │
 └────────────────────────────────────────────────────────────────────┘*/

/*┌────────────────────────────────────────────────────────────────────┐

 │                                                                    │
 │bel  b/s       tab l/f      eof         esc    c/r             bla  │
 │bell backspace tab linefeed end-of-file escape carriage-return blank│
 │                                                                    │
 │                                                                    │
 │                                                                    │
 │    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F   │
 │                                                                    │
 │  ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗ │
 │0 ║nul│ ☺ │ ☻ │ ♥ │ ♦ │ ♣ │ ♠ │bel│ bs│tab│ lf│ vt│ ff│ cr│ so│ si║0│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │1 ║ ► │ ◄ │ ↕ │ ‼ │ ¶ │ § │ ▬ │ ↨ │ ↑ │ ↓ │eof│esc│ ∟ │ ↔ │ ▲ │ ▼ ║1│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │2 ║bla│ ! │ " │ # │ $ │ % │ & │ ' │ ( │ ) │ * │ + │ , │ - │ . │ / ║2│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │3 ║ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ : │ ; │ < │ = │ > │ ? ║3│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │4 ║ @ │ A │ B │ C │ D │ E │ F │ G │ H │ I │ J │ K │ L │ M │ N │ O ║4│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │5 ║ P │ Q │ R │ S │ T │ U │ V │ W │ X │ Y │ Z │ [ │ \ │ ] │ ^ │ _ ║5│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │6 ║ ` │ a │ b │ c │ d │ e │ f │ g │ h │ i │ j │ k │ l │ m │ n │ o ║6│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │7 ║ p │ q │ r │ s │ t │ u │ v │ w │ x │ y │ z │ { │ | │ } │ ~ │ ⌂ ║7│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │8 ║ Ç │ ü │ é │ â │ ä │ à │ å │ ç │ ê │ ë │ è │ ï │ î │ ì │ Ä │ Å ║8│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │9 ║ É │ æ │ Æ │ ô │ ö │ ò │ û │ ù │ ÿ │ Ö │ Ü │ ¢ │ £ │ ¥ │ ₧ │ ƒ ║9│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │A ║ á │ í │ ó │ ú │ ñ │ Ñ │ ª │ º │ ¿ │ ⌐ │ ¬ │ ½ │ ¼ │ ¡ │ « │ » ║A│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │B ║ ░ │ ▒ │ ▓ │ │ │ ┤ │ ╡ │ ╢ │ ╖ │ ╕ │ ╣ │ ║ │ ╗ │ ╝ │ ╜ │ ╛ │ ┐ ║B│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │C ║ └ │ ┴ │ ┬ │ ├ │ ─ │ ┼ │ ╞ │ ╟ │ ╚ │ ╔ │ ╩ │ ╦ │ ╠ │ ═ │ ╬ │ ╧ ║C│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │D ║ ╨ │ ╤ │ ╥ │ ╙ │ ╘ │ ╒ │ ╓ │ ╫ │ ╪ │ ┘ │ ┌ │ █ │ ▄ │ ▌ │ ▐ │ ▀ ║D│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │E ║ α │ ß │ Γ │ π │ Σ │ σ │ µ │ τ │ Φ │ Θ │ Ω │ δ │ ∞ │ φ │ ε │ ∩ ║E│
 │  ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ │
 │F ║ ≡ │ ± │ ≥ │ ≤ │ ⌠ │ ⌡ │ ÷ │ ≈ │ ° │ ∙ │ · │ √ │ ⁿ │ ² │ ■ │   ║F│
 │  ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝ │
 │                                                                    │
 │    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F   │
 │                                                                    │
 └────────────────────────────────────────────────────────────────────┘*/

call homedrive /*get the homedrive envvar.*/

$home=p(!var('$HOME') homedrive) /*get homedrive of \$\ dir.*/ $home=appenda($home,':') /*make the drive ──► drive:*/ $path=p(!var('$PATH') '\$') /*get path name of \$ dir.*/ $path=prefixa($PATH,'\') /*make the path ──► \dir */ $path=appenda($path,'\') /*make the path ──► dir\ */ if \hascol($path) then $path=$home||$path /*prefix with $HOME  ? */

  1. home=p(!var('#HOME') homedrive) /*get homedrive of \#\ dir.*/
  2. home=appenda(#home,':') /*make the drive ──► drive:*/
  3. path=p(!var('#PATH') '\#') /*get path name of \# dir.*/
  4. path=prefixa(#PATH,'\') /*make the path ──► \dir */
  5. path=appenda(#path,'\') /*make the path ──► dir\ */

if \hascol(#path) then #path=#home||#path /*prefix with #HOME  ? */

@rexx =$path'REXX.EXE' /*point to the REXX cmd*/ @erase ='ERASE' /*point to the ERASE cmd*/ @copy ='COPY' /*point to the COPY cmd*/

labs='1 ER J HALT NOVALUE SYNTAX !CAL !ENV !FID !SYS !VAR' asub.= /*nullify to-be-got asub */ rlines=sourceline()

 do k=1 for sourceline()                    /*"read" this file's source*/
 _=sourceline(k)                            /*get a record of this file*/
 if k==1 then asub.1=_                      /*if 1st line, then keep it*/
 parse upper var _ lab ':'                  /*get the label, if present*/
 lab=strip(lab)                             /*remove superflous blanks.*/
 if lab== then iterate                    /*no label?  Then ignore it*/
 if wordpos(lab,labs)\==0 then asub.lab=_   /*is LABEL one of the good?*/
 end

nfn=squish(!fn,'_') @$ =$path

tmp=homedrive()

              _=value("TMP" ,,'ENVIRONMENT')

if _ == then _=value("TEMP",,'ENVIRONMENT') if _\== then tmp=left(_,1)

fid.0='.F='tmp":\"nfn'.TMP' fid.1='.F='tmp":\"nfn'.KEX' fid.2='.F='tmp":\"nfn'.REX'

do k=0 to 2
tfid.k=substr(fid.k,4)
end

f36=copies('f',36) /*all 1s.*/ fids=space( ',(' tfid.1 "),(" tfid.2 '),' ) @test='TEST' @generate='GENERATE' scomm='/*'; ecomm='*/' xblank=c2x(" ") /*hex value of a blank character.*/ tops='.BOX= .C=blue .H=cyan .J=c .KD=,' cop=0 test=0 gen=0 opts=!

do forever while opts\==
parse var opts y opts
  select
  when y==',' then nop
  when abbrev(@generate,y,3) then gen=1
  when y==@copy then cop=1
  when y==@test then test=1
  otherwise call er 55,y
  end
end

if test then do

            tfid=tmp':\'!fn".DAT"
              do k=0 to 255
              call $t ".BOX .BLOCK=12 .J=c .E=1 .A=-1 .F="tfid 'x'right("0"d2x(j),2)'='d2c(j)
              end
            exit
            end

if \gen then do

            if !== then call $t '.A=-1' tops ".H=yellow .E=1 Issue("!fn @generate')to generate the' !fn "files:" fids
            exit 1
            end

nr=0

 do k=0 to 2
 @erase tfid.k
 end

call $t ".P=99 .A=1" tops !fn 'is creating the temporary program:('tfid.0")as a templete for" fids call $t tops !fn 'is listing the records as they are being written to('tfid.0")"

pblank='0f'x /*pseudo-blank character used by $T. */ indentb=copies(pblank,21) /*☼ chars are translated to blanks by $T.*/

pro.= pro.1 =asub.1 pro.2 = pro.3 =scomm indentb"This REXX program was created by" !fn !ft !fm ecomm pro.4 =scomm indentb"created:" date('W') left(date('U'),6)left(date('S'),4) time() ecomm pro.30=" " pro.40="_=space(!!) /*get 1st arg, preserve case.*/" pro.50=" /*don't support ? for $BLOCK.*/" pro.60="if _== then _=' '" pro.62="if words(_)>1 then call er 59" pro.64="c2bb='character-to-be-blocked'" pro.70=" " pro.71="if length(_)==2 then do" pro.73=indentb"if \datatype(_,'X') then call er 40,_ c2bb" pro.75=indentb"_=x2c(_)" pro.77=indentb"end" pro.79=" " pro.82="if length(_)\==1 then call er 30,_ c2bb 1" pro.83="?=0" pro.84="_=c2x(_)" pro.97=pblank pro.98=pblank pro.99='/*═════════════════════════════general 1-line subs══════════════════════*/'

 do k=1 for 99
 if pro.k\== then call wr pro.k
 end


/*──────────────────────*/ /* x'00' (no graphic character)*/

/*──────────────────────*/ _=c2x("☺") /* x'01' happy face.*/ call charbits , ' 1111111111 '||, '111111111111'||, '11 11'||, '11 11 11 11'||, '11 11 11 11'||, '11 11'||, '11 11'||, '11 1111 11'||, '11 11 11'||, '11 11'||, '111111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("☻") /* x'02' solid/reverse happy face*/ call charbits , ' 1111111111 '||, '111111111111'||, '111111111111'||, '111 11 111'||, '111 11 111'||, '111111111111'||, '111111111111'||, '1111 1111'||, '11111 11111'||, '111111111111'||, '111111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("♥") /* x'03' heart, card suit.*/ call charbits , ' 11 11 '||, ' 1111 1111 '||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, ' 1111111111 '||, ' 1111111111 '||, ' 11111111 '||, ' 111111 '||, ' 1111 '||, ' 11 '

/*──────────────────────*/ _=c2x("♦") /* x'04' diamond, card suit.*/ call charbits , ' 11 '||, ' 1111 '||, ' 111111 '||, ' 11111111 '||, ' 1111111111 '||, '111111111111'||, '111111111111'||, ' 1111111111 '||, ' 11111111 '||, ' 111111 '||, ' 1111 '||, ' 11 '

/*──────────────────────*/ _=c2x("♣") /* x'05' club, card suit.*/ call charbits , ' 1111 '||, ' 111111 '||, ' 111111 '||, ' 1111 '||, ' 11 11 11 '||, ' 1111111111 '||, '111111111111'||, '111111111111'||, ' 1111111111 '||, ' 11 11 11 '||, ' 11 '||, ' 1111 '

/*──────────────────────*/ _=c2x("♠") /* x'06' spade, card suit.*/ call charbits , ' 11 '||, ' 1111 '||, ' 111111 '||, ' 11111111 '||, ' 1111111111 '||, '111111111111'||, '111111111111'||, '111111111111'||, ' 1111111111 '||, ' 11 11 11 '||, ' 11 '||, ' 1111 '


/*──────────────────────*/ _='07'x /* x'07' round bullet.*/ /*──────────────────────*/ /* x'07' bell (beep). */ call charbits , ' '||, ' '||, ' '||, ' 1111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 1111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x(") /* x'08' reverse round bullet.*/ /*──────────────────────*/ /* x'08' b/s (backspace).*/ call charbits , '111111111111'||, '111111111111'||, '111111111111'||, '1111 1111'||, '111 111'||, '111 111'||, '111 111'||, '111 111'||, '1111 1111'||, '111111111111'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _='09'x /* x'09' hollow round bullet.*/ /*──────────────────────*/ /* x'09' tab (horizontal).*/ call charbits , ' '||, ' 11111111 '||, ' 1111111111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111 111 '||, ' 1111111111 '||, ' 11111111 '||, ' '

/*──────────────────────*/ _=d2x(10) /* x'0a' reverse hollow round bullet*/ /*──────────────────────*/ /* x'0a' l/f (line-feed).*/ call charbits , '111111111111'||, '111111111111'||, '111 111'||, '11 1111 11'||, '11 111111 11'||, '11 111111 11'||, '11 111111 11'||, '11 111111 11'||, '11 1111 11'||, '111 111'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("♂") /* x'0b' male symbol (biology).*/ call charbits , ' 111111'||, ' 11111'||, ' 1111'||, ' 11 11'||, ' 111111 1'||, ' 11111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("♀") /* x'0c' female symbol (biology).*/ call charbits , ' 111111 '||, ' 11111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11111111 '||, ' 111111 '||, ' 11 '||, ' 11 '||, ' 11111111 '||, ' 11111111 '||, ' 11 '

/*──────────────────────*/ _=d2x(13) /* x'0d' music note.*/ /*──────────────────────*/ /* x'0d' c/r (carriage-return).*/ call charbits , ' 11111111111'||, ' 11111111111'||, ' 11 11'||, ' 11 11'||, ' 11111111111'||, ' 11111111111'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '111 '||, '11 '

/*──────────────────────*/ _=c2x("♫") /* x'0e' music note.*/ call charbits , ' 11111111111'||, ' 11111111111'||, ' 11 11'||, ' 11 11'||, ' 11111111111'||, ' 11111111111'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 111'||, '111 11 '||, '11 '

/*──────────────────────*/ _=c2x("☼") /* x'0f' sun burst.*/ call charbits , '1 1111 1'||, '11 1111 11'||, ' 11 1111 11 '||, ' 11111111 '||, '111111111111'||, '11111 11111'||, '11111 11111'||, '111111111111'||, ' 11111111 '||, ' 11 1111 11 '||, '11 1111 11'||, '1 1111 1'

/*──────────────────────*/ _=c2x("►") /* x'10' solid right arrow.*/ call charbits , '11 '||, '1111 '||, '111111 '||, '11111111 '||, '1111111111 '||, '111111111111'||, '111111111111'||, '1111111111 '||, '11111111 '||, '111111 '||, '1111 '||, '11 '

/*──────────────────────*/ _=c2x("◄") /* x'11' solid left arrow.*/ call charbits , ' 11'||, ' 1111'||, ' 111111'||, ' 11111111'||, ' 1111111111'||, '111111111111'||, '111111111111'||, ' 1111111111'||, ' 11111111'||, ' 111111'||, ' 1111'||, ' 11'

/*──────────────────────*/ _=c2x("↕") /* x'12' up-down arrow.*/ call charbits , ' 11 '||, ' 1111 '||, ' 111111 '||, ' 11111111 '||, ' 1111111111 '||, ' 11 '||, ' 11 '||, ' 1111111111 '||, ' 11111111 '||, ' 111111 '||, ' 1111 '||, ' 11 '

/*──────────────────────*/ _=c2x("‼") /* x'13' double exclaimation point*/ call charbits , ' 11 11 '||, ' 1111 1111 '||, ' 1111 1111 '||, ' 1111 1111 '||, ' 1111 1111 '||, ' 1111 1111 '||, ' 11 11 '||, ' 11 11 '||, ' '||, ' '||, ' 11 11 '||, ' 11 11 '

/*──────────────────────*/ _=c2x("¶") /* x'14' paragraph.*/ call charbits , ' 11111111111'||, '111111111111'||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '11111111 11'||, ' 1111111 11'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 11'

/*──────────────────────*/ _=c2x("§") /* x'15' section.*/ call charbits , ' 111111 '||, ' 11111111 '||, ' 11 '||, ' 1111 '||, ' 111111 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 1111 '||, ' 11 '||, ' 11111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("▬") /* x'16' low square bullet.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("↨") /* x'17' lined up-down arrow.*/ call charbits , ' 11 '||, ' 1111 '||, ' 111111 '||, ' 11111111 '||, ' 1111111111 '||, ' 11 '||, ' 1111111111 '||, ' 11111111 '||, ' 111111 '||, ' 1111 '||, ' 11 '||, '111111111111'

/*──────────────────────*/ _=c2x("↑") /* x'18' up arrow.*/ call charbits , ' 11 '||, ' 1111 '||, ' 111111 '||, ' 11 11 11 '||, ' 11 11 11 '||, '11 11 11'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("↓") /* x'19' down arrow.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '11 11 11'||, ' 11 11 11 '||, ' 11 11 11 '||, ' 111111 '||, ' 1111 '||, ' 11 '

/*──────────────────────*/ _=d2x(26) /* x'1a' right arrow.*/ /*──────────────────────*/ /* x'1a' eof (end-of-file).*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '111111111111'||, '111111111111'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=d2x(27) /* x'1b' left arrow.*/ /*──────────────────────*/ /* x'1b' esc (escape).*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '111111111111'||, '111111111111'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("∟") /* x'1c' floor.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 111111 '||, ' 111111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("↔") /* x'1d' left-right arrow.*/ call charbits , ' '||, ' 1 1 '||, ' 11 11 '||, ' 111 111 '||, ' 1111 1111 '||, '111111111111'||, '111111111111'||, ' 1111 1111 '||, ' 111 111 '||, ' 11 11 '||, ' 1 1 '||, ' '


/*──────────────────────*/ _=c2x("∟") /* x'1c' floor.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 111111 '||, ' 111111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("↔") /* x'1d' left-right arrow.*/ call charbits , ' '||, ' 1 1 '||, ' 11 11 '||, ' 111 111 '||, ' 1111 1111 '||, '111111111111'||, '111111111111'||, ' 1111 1111 '||, ' 111 111 '||, ' 11 11 '||, ' 1 1 '||, ' '

/*──────────────────────*/ _=c2x("▲") /* x'1e' solid up arrow.*/ call charbits , ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '||, ' 111111 '||, ' 111111 '||, ' 11111111 '||, ' 11111111 '||, ' 1111111111 '||, ' 1111111111 '||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("▼") /* x'1f' solid down arrow.*/ call charbits , '111111111111'||, '111111111111'||, ' 1111111111 '||, ' 1111111111 '||, ' 11111111 '||, ' 11111111 '||, ' 111111 '||, ' 111111 '||, ' 1111 '||, ' 1111 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x(" ") /* x'20' blank.*/

                 /*bypass this char, it's assumed as a default ...*/

/*──────────────────────*/ _=c2x("!") /* x'21' exclaimation point.*/ call charbits , ' 11 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x('"') /* x'22' double quote.*/ call charbits , ' 11 11 '||, ' 11 11 '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("#") /* x'23' pound, hash, octothorpe.*/ call charbits , ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '111111111111'||, '111111111111'||, ' 11 11 '||, ' 11 11 '||, '111111111111'||, '111111111111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '

/*──────────────────────*/ _=c2x("$") /* x'24' dollar (currancy).*/ call charbits , ' 11 '||, ' 1111111111 '||, '111111111111'||, '11 11 '||, '11 11 '||, '11111111111 '||, ' 11111111111'||, ' 11 11'||, ' 11 11'||, '111111111111'||, ' 1111111111 '||, ' 11 '

/*──────────────────────*/ _=c2x("%") /* x'25' per cent.*/ call charbits , ' 111 11'||, '11111 11 '||, '11 11 11 '||, '11111 11 '||, ' 111 11 '||, ' 11 '||, ' 11 '||, ' 11 111 '||, ' 11 11111'||, ' 11 11 11'||, '11 11111'||, '1 111 '

/*──────────────────────*/ _=c2x("&") /* x'26' ampersand, and.*/ call charbits , ' 1111111 '||, ' 111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11111 '||, ' 11111 '||, ' 11 11 11'||, '11 11 11'||, '11 1111'||, '11111111111 '||, ' 11111111111'

/*──────────────────────*/ _=c2x("'") /* x'27' single quote, apostrophe*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("(") /* x'28' left parenthesis.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x(")") /* x'29' right parenthesis.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("*") /* x'2a' asterisk, star.*/ call charbits , '11 11'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, '111111111111'||, '111111111111'||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11 11'

/*──────────────────────*/ _=c2x("+") /* x'2b' plus sign.*/ call charbits , ' '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' '

/*──────────────────────*/ _=c2x(",") /* x'2c' comma.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("-") /* x'2d' minus sign.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x(".") /* x'2e' period, dot, decimal pt.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("/") /* x'2f' forward slash, solidus.*/ call charbits , ' 11'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '11 '||, '1 '

/*──────────────────────*/ _=c2x("0") /* x'30' digit 0 (zero).*/ call charbits , ' 11111111 '||, ' 1111111111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111 111 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("1") /* x'31' digit 1 (one).*/ call charbits , ' 11 '||, ' 111 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("2") /* x'32' digit 2 (two).*/ call charbits , ' 11111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111 '

/*──────────────────────*/ _=c2x("3") /* x'33' digit 3 (three).*/ call charbits , ' 11111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 '||, ' 11 '||, ' 111 '||, ' 111 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("4") /* x'34' digit 4 (four).*/ call charbits , ' 111 '||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("5") /* x'35' digit 5 (five).*/ call charbits , ' 1111111111 '||, ' 1111111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("6") /* x'36' digit 6 (six).*/ call charbits , ' 1111111 '||, ' 111111111 '||, ' 11 11 '||, ' 11 '||, ' 11 '||, ' 11 111111 '||, ' 1111111111 '||, ' 111 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("7") /* x'37' digit 7 (seven).*/ call charbits , ' 1111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("8") /* x'38' digit 8 (eight).*/ call charbits , ' 111111 '||, ' 11111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("9") /* x'39' digit 9 (nine).*/ call charbits , ' 1111111 '||, ' 111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 111 '||, ' 111111111 '||, ' 11111 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 11111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x(":") /* x'3a' colon.*/ call charbits , ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' '||, ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' '

/*──────────────────────*/ _=c2x(";") /* x'3b' semicolon.*/ call charbits , ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' '||, ' '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("<") /* x'3c' less than.*/ call charbits , ' 11'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '11 '||, '11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11'

/*──────────────────────*/ _=c2x("=") /* x'3d' equal sign.*/ call charbits , ' '||, ' '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x(">") /* x'3e' greater than.*/ call charbits , '11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11'||, ' 11'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '11 '

/*──────────────────────*/ _=c2x("?") /* x'3f' question mark.*/ call charbits , ' 1111 '||, ' 111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' 11 '

/*──────────────────────*/ _=c2x("@") /* x'40' commercial at.*/ call charbits , ' 1111111111 '||, '111111111111'||, '11 11'||, '11 11111 11'||, '11 111111 11'||, '11 11 11 11'||, '11 11111111 '||, '11 111111 '||, '11 '||, '11 '||, ' 1111111111 '||, ' 111111111 '

/*──────────────────────*/ _=c2x("A") /* x'41' letter A, uppercase.*/ call charbits , ' 11 '||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, '1111 1111'||, '1111 1111'

/*──────────────────────*/ _=c2x("B") /* x'42' letter B, uppercase.*/ call charbits , '11111111111 '||, '111111111111'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11111111111'||, ' 1111111111 '||, ' 11 11'||, ' 11 11'||, ' 11 11'||, '111111111111'||, '11111111111 '

/*──────────────────────*/ _=c2x("C") /* x'43' letter C, uppercase.*/ call charbits , ' 1111111111 '||, '111111111111'||, '111 11'||, '11 11'||, '11 '||, '11 '||, '11 '||, '11 '||, '11 11'||, '111 11'||, '111111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("D") /* x'44' letter D, uppercase.*/ call charbits , '1111111111 '||, '11111111111 '||, ' 11 111'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11 111'||, '11111111111 '||, '1111111111 '

/*──────────────────────*/ _=c2x("E") /* x'45' letter E, uppercase.*/ call charbits , '111111111111'||, '111111111111'||, '11 11'||, '11 '||, '11 11 '||, '1111111 '||, '1111111 '||, '11 11 '||, '11 '||, '11 11'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("F") /* x'46' letter F, uppercase.*/ call charbits , '111111111111'||, '111111111111'||, '11 11'||, '11 '||, '11 11 '||, '1111111 '||, '1111111 '||, '11 11 '||, '11 '||, '11 '||, '11 '||, '11 '

/*──────────────────────*/ _=c2x("G") /* x'47' letter G, uppercase.*/ call charbits , ' 1111111111 '||, '111111111111'||, '111 11'||, '11 '||, '11 '||, '11 '||, '11 1111111'||, '11 1111111'||, '11 11 11'||, '111 111'||, '111111111111'||, ' 111111111 '

/*──────────────────────*/ _=c2x("H") /* x'48' letter H, uppercase.*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '1111 1111'||, '1111 1111'

/*──────────────────────*/ _=c2x("I") /* x'49' letter I, uppercase.*/ call charbits , ' 111111 '||, ' 111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 111111 '||, ' 111111 '

/*──────────────────────*/ _=c2x("J") /* x'4a' letter J, uppercase.*/ call charbits , ' 11111111'||, ' 11111111'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '11 11 '||, '11 11 '||, '11 11 '||, '111 111 '||, ' 1111111 '||, ' 11111 '

/*──────────────────────*/ _=c2x("K") /* x'4b' letter K, uppercase.*/ call charbits , '1111 111'||, '1111 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '1111 11 '||, '1111 111'

/*──────────────────────*/ _=c2x("L") /* x'4c' letter L, uppercase.*/ call charbits , '1111 '||, '1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 1111'||, ' 11 1111'||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111 '

/*──────────────────────*/ _=c2x("M") /* x'4d' letter M, uppercase.*/ call charbits , '111 111'||, '111 111'||, ' 111 111 '||, ' 1111 1111 '||, ' 1111111111 '||, ' 11 1111 11 '||, ' 11 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '1111 1111'||, '1111 1111'

/*──────────────────────*/ _=c2x("N") /* x'4e' letter N, uppercase.*/ call charbits , '111 1111'||, '111 1111'||, ' 111 11 '||, ' 1111 11 '||, ' 11111 11 '||, ' 11 111 11 '||, ' 11 111 11 '||, ' 11 11111 '||, ' 11 1111 '||, ' 11 111 '||, '1111 111'||, '1111 111'

/*──────────────────────*/ _=c2x("O") /* x'4f' letter O, uppercase.*/ call charbits , ' 1111111111 '||, '111111111111'||, '111 111'||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '111 111'||, '111111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("P") /* x'50' letter P, uppercase.*/ call charbits , '11111111111 '||, '111111111111'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11111111111'||, ' 1111111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, '1111 '||, '1111 '

/*──────────────────────*/ _=c2x("Q") /* x'51' letter Q, uppercase.*/ call charbits , ' 1111111111 '||, '111111111111'||, '111 111'||, '11 11'||, '11 11'||, '11 11'||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '111 11 11'||, '111111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("R") /* x'52' letter R, uppercase.*/ call charbits , '11111111111 '||, '111111111111'||, ' 11 11'||, ' 11 11'||, ' 11 11'||, ' 11111111111'||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '1111 11 '||, '1111 11'

/*──────────────────────*/ _=c2x("S") /* x'53' letter S, uppercase.*/ call charbits , ' 11111111 '||, ' 1111111111 '||, ' 111 11 '||, ' 11 1111'||, ' 11 '||, ' 1111111 '||, ' 1111111 '||, ' 111 '||, '1111 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("T") /* x'54' letter T, uppercase.*/ call charbits , '111111111111'||, '111111111111'||, '11 11 11'||, '11 11 11'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("U") /* x'55' letter U, uppercase.*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111 111 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("V") /* x'56' letter V, uppercase.*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, ' 11 '

/*──────────────────────*/ _=c2x("W") /* x'57' letter W, uppercase.*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 11 '||, ' 11 1111 11 '||, ' 1111111111 '||, ' 1111 1111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '

/*──────────────────────*/ _=c2x("X") /* x'58' letter X, uppercase.*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '1111 1111'||, '1111 1111'

/*──────────────────────*/ _=c2x("Y") /* x'59' letter Y, uppercase.*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("Z") /* x'5a' letter Z, uppercase.*/ call charbits , '111111111111'||, '111111111111'||, '11 111 '||, '11 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' 111 11'||, ' 111 11'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("[") /* x'5b' left bracket.*/ call charbits , ' 1111 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("\") /* x'5c' backslash.*/ call charbits , '11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11'||, ' 1'

/*──────────────────────*/ _=c2x("]") /* x'5d' right bracket.*/ call charbits , ' 1111 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("^") /* x'5e' carot.*/ call charbits , ' 11 '||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11 11'||, '1 1'||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("_") /* x'5f' underbar, underscore.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' 1111111111 '||, ' 1111111111 '

/*──────────────────────*/ _=c2x("`") /* x'60' grave accent.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("a") /* x'61' letter a, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 1111111 '||, ' 11111111 '||, ' 11 '||, ' 111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111'||, ' '

/*──────────────────────*/ _=c2x("b") /* x'62' letter b, lowercase. */ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' '

/*──────────────────────*/ _=c2x("c") /* x'63' letter c, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 11111111 '||, ' '

/*──────────────────────*/ _=c2x("d") /* x'64' letter d, lowercase. */ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' '

/*──────────────────────*/ _=c2x("e") /* x'65' letter e, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 '||, ' 111111111 '||, ' 1111111 '||, ' '

/*──────────────────────*/ _=c2x("f") /* x'66' letter f, lowercase. */ call charbits , ' 1111 '||, ' 111111 '||, ' 11 11 '||, ' 11 '||, ' 111111 '||, ' 111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '

/*──────────────────────*/ _=c2x("g") /* x'67' letter g, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' 11 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("h") /* x'68' letter h, lowercase. */ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11111 '||, ' 111111111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' '

/*──────────────────────*/ _=c2x("i") /* x'69' letter i, lowercase. */ call charbits , ' '||, ' 11 '||, ' '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' '

/*──────────────────────*/ _=c2x("j") /* x'6a' letter j, lowercase. */ call charbits , ' '||, ' 11 '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("k") /* x'6b' letter k, lowercase. */ call charbits , ' 11 '||, ' 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 111 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' '

/*──────────────────────*/ _=c2x("l") /* x'6c' letter l, lowercase. */ call charbits , ' 111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' '

/*──────────────────────*/ _=c2x("m") /* x'6d' letter m, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 1111 111 '||, ' 1111111111 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' ' /*──────────────────────*/ _=c2x("n") /* x'6e' letter n, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 111 11111 '||, ' 1111111111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' '

/*──────────────────────*/ _=c2x("o") /* x'6f' letter o, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 11111111 '||, ' '

/*──────────────────────*/ _=c2x("p") /* x'70' letter p, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("q") /* x'71' letter q, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 111111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("r") /* x'72' letter r, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11 111111 '||, ' 1111111111 '||, ' 111 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '

/*──────────────────────*/ _=c2x("s") /* x'73' letter s, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11111111 '||, ' 1111111111 '||, ' 11 '||, ' 111111111 '||, ' 111111111 '||, ' 11 '||, ' 1111111111 '||, ' 11111111 '||, ' '

/*──────────────────────*/ _=c2x("t") /* x'74' letter t, lowercase. */ call charbits , ' 11 '||, ' 11 '||, ' 11111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 111111 '||, ' 1111 '||, ' '

/*──────────────────────*/ _=c2x("u") /* x'75' letter u, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 1111111 11'||, ' '

/*──────────────────────*/ _=c2x("v") /* x'76' letter v, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, ' 11 '||, ' '

/*──────────────────────*/ _=c2x("w") /* x'77' letter w, lowercase. */ call charbits , ' '||, ' '||, ' '||, '11 11'||, '11 11'||, '11 11 11'||, '11 1111 11'||, '11 11 11 11'||, '1111 1111'||, '111 111'||, '11 11'||, ' '

/*──────────────────────*/ _=c2x("x") /* x'78' letter x, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 111 111 '||, ' '

/*──────────────────────*/ _=c2x("y") /* x'79' letter y, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111111111 '||, ' 11111111 '||, ' 11 '||, ' 1111111111 '||, ' 11111111 '

/*──────────────────────*/ _=c2x("z") /* x'7a' letter z, lowercase. */ call charbits , ' '||, ' '||, ' '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 '||, ' 111 '||, ' 111 '||, ' 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' '

/*──────────────────────*/ _=c2x("{") /* x'7b' left brace.*/ call charbits , ' 111 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 111 '

/*──────────────────────*/ _=c2x("|") /* x'7c' broken vertical bar.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("}") /* x'7d' right brace.*/ call charbits , ' 111 '||, ' 1111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 111 '

/*──────────────────────*/ _=c2x("~") /* x'7e' tilde.*/ call charbits , ' '||, ' 111 '||, ' 111111 111'||, '1111 11111 '||, '111 111 '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("?") /* x'7f' irregular pentagon,house*/ call charbits , ' 11 '||, ' 1111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("¢") /* x'9b' cent (currency).*/ call charbits , ' 11 '||, ' 11 '||, ' 11111111 '||, ' 1111111111 '||, ' 11 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 11 '||, ' 1111111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("£") /* x'9c' pound (currency).*/ call charbits , ' 11111 '||, ' 1111111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 '||, '111111 '||, '111111 '||, ' 11 '||, ' 11 '||, ' 111 11'||, '11 111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("¥") /* x'9d' yen (currency).*/ call charbits , '1111 1111'||, '1111 1111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111 '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' 11 '

/*──────────────────────*/ _=c2x("₧") /* x'9e' peseta (currency).*/ call charbits , '11111111 '||, '111111111 '||, '11 11 '||, '11 11 '||, '111111111 '||, '11111111 11'||, '11 11 11 '||, '11 1111 11 '||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '11 11 11 '

/*──────────────────────*/ _=c2x("ƒ") /* x'9f' franc (currency).*/ call charbits , ' 1111 '||, ' 111111 '||, ' 11 11 '||, ' 11 '||, ' 111111 '||, ' 111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 111111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("¿") /* x'a8' Spanish question mark.*/ call charbits , ' 11 '||, ' '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 1111 '

/*──────────────────────*/ _=c2x("⌐") /* x'a9' reverse not.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("¬") /* x'aa' logical not.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("½") /* x'ab' one-half fraction (1/2).*/ call charbits , ' 1 11'||, '11 11 '||, ' 1 11 '||, ' 1 11 '||, ' 1 11 '||, ' 1 11 111 '||, '111 11 1 1'||, ' 11 1 '||, ' 11 1 '||, ' 11 1 '||, '11 1 '||, '1 11111'

/*──────────────────────*/ _=c2x("¼") /* x'ac' one-fourth fraction (1/4)*/ call charbits , ' 1 11'||, '11 11 '||, ' 1 11 '||, ' 1 11 '||, ' 1 11 '||, ' 1 11 1 '||, '111 11 11 '||, ' 11 1 1 '||, ' 11 1 1 '||, ' 11 111111'||, '11 1 '||, '1 1 '

/*──────────────────────*/ _=c2x("¡") /* x'ad' Spanish exclaimation mark*/ call charbits , ' 11 '||, ' 11 '||, ' '||, ' 11 '||, ' 11 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 1111 '||, ' 11 '

/*──────────────────────*/ _=c2x("«") /* x'ae' left double carot.*/ call charbits , ' 11 11'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11 11 '||, '11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11'

/*──────────────────────*/ _=c2x("»") /* x'af' much greater than.*/ call charbits , '11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11'||, ' 11 11'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11 11 '

/*──────────────────────*/ _=c2x("░") /* x'b0' light dither block.*/ call charbits , ' 11 11 11 11'||, '1 1 1 1 '||, ' 11 11 11 11'||, '1 1 1 1 '||, ' 11 11 11 11'||, '1 1 1 1 '||, ' 11 11 11 11'||, '1 1 1 1 '||, ' 11 11 11 11'||, '1 1 1 1 '||, ' 11 11 11 11'||, '1 1 1 1 '

/*──────────────────────*/ _=c2x("▒") /* x'b1' medium dither block.*/ call charbits , ' 11 11 11 11'||, '11 11 11 11 '||, ' 11 11 11 11'||, '11 11 11 11 '||, ' 11 11 11 11'||, '11 11 11 11 '||, ' 11 11 11 11'||, '11 11 11 11 '||, ' 11 11 11 11'||, '11 11 11 11 '||, ' 11 11 11 11'||, '11 11 11 11 '

/*──────────────────────*/ _=c2x("▓") /* x'b2' heavy dither block.*/ call charbits , '111 111 111 '||, ' 111 111 111'||, '111 111 111 '||, ' 111 111 111'||, '111 111 111 '||, ' 111 111 111'||, '111 111 111 '||, ' 111 111 111'||, '111 111 111 '||, ' 111 111 111'||, '111 111 111 '||, ' 111 111 111'

/*──────────────────────*/ _=c2x("│") /* x'b3' vertical bar.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("─") /* x'c4' hyphen, dash.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, '111111111111'||, '111111111111'||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("█") /* x'db' full block.*/ call charbits , '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("▄") /* x'dc' bottom block.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' '||, ' '||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("▌") /* x'dd' left block.*/ call charbits , '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '||, '111111 '

/*──────────────────────*/ _=c2x("▐") /* x'de' right block.*/ call charbits , ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'||, ' 111111'

/*──────────────────────*/ _=c2x("▀") /* x'df' top block.*/ call charbits , '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, '111111111111'||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("α") /* x'e0' lowercase Greek alpha.*/ call charbits , ' '||, ' '||, ' '||, ' 111111 11'||, ' 11111111111'||, '11 1111 '||, '11 11 '||, '11 11 '||, '11 111 '||, ' 1111111111 '||, ' 111111 11'||, ' '

/*──────────────────────*/ _=c2x("ß") /* x'e1' lowercase Greek beta.*/ call charbits , ' 11111111 '||, ' 1111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 111111111 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("Γ") /* x'e2' uppercase Greek gamma.*/ call charbits , '111111111111'||, '111111111111'||, '11 11'||, '11 11'||, '11 '||, '11 '||, '11 '||, '11 '||, '11 '||, '11 '||, '11 '||, '11 '

/*──────────────────────*/ _=c2x("π") /* x'e3' lowercase Greek pi.*/ call charbits , ' '||, ' '||, ' 11111111111'||, '111111111111'||, '11 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111 111 '||, ' 111 111'

/*──────────────────────*/ _=c2x("Σ") /* x'e4' uppercase Greek sigma.*/ call charbits , '111111111111'||, ' 11111111111'||, ' 11 11'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 11'||, ' 11111111111'||, '111111111111'

/*──────────────────────*/ _=c2x("σ") /* x'e5' lowercase Greek sigma.*/ call charbits , ' '||, ' '||, ' '||, ' '||, ' 1111111111'||, ' 11111111111'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 1111111111 '||, ' 11111111 '||, ' '

/*──────────────────────*/ _=c2x("µ") /* x'e6' lowercase Greek mu.*/ call charbits , ' '||, ' '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 111 111 '||, ' 111111111 '||, ' 11 '||, '11 '

/*──────────────────────*/ _=c2x("τ") /* x'e7' uppercase Greek tau.*/ call charbits , ' 111 111 11'||, '111111111111'||, '11 11 111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '

/*──────────────────────*/ _=c2x("Φ") /* x'e8' uppercase Greek phi.*/ call charbits , ' 11 '||, ' 1111111111 '||, '111111111111'||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '11 11 11'||, '111111111111'||, ' 1111111111 '||, ' 11 '

/*──────────────────────*/ _=c2x("Θ") /* x'e9' lowercase Greek theta.*/ call charbits , ' '||, ' 111111 '||, ' 1111111111 '||, '11 11'||, '11 11'||, '11 111111 11'||, '11 111111 11'||, '11 11'||, '11 11'||, ' 1111111111 '||, ' 111111 '||, ' '

/*──────────────────────*/ _=c2x("Ω") /* x'ea' uppercase Greek omega.*/ call charbits , ' 111111 '||, ' 1111111111 '||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11111 11111'||, '11111 11111'

/*──────────────────────*/ _=c2x("Ω") /* x'ea' uppercase Greek omega.*/ call charbits , ' 111111 '||, ' 1111111111 '||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, '11 11'||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, '11111 11111'||, '11111 11111'

/*──────────────────────*/ _=c2x("δ") /* x'eb' lowercase Greek delta.*/ call charbits , ' 11111111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' 1111111111 '||, '111111111111'||, '11 11'||, '11 11'||, '11 11'||, '111111111111'||, ' 1111111111 '

/*──────────────────────*/ _=c2x("∞") /* x'ec' infinity.*/ call charbits , ' '||, ' '||, ' '||, ' 111 111 '||, ' 11 1111 11 '||, '11 11 11'||, '11 11 11'||, ' 11 1111 11 '||, ' 111 111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("φ") /* x'ed' lowercase Greek phi.*/ call charbits , ' '||, ' '||, ' 11 '||, ' 11111111 '||, ' 1111111111 '||, ' 11 11 11 '||, ' 11 11 11 '||, ' 1111111111 '||, ' 11111111 '||, ' 11 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("ε") /* x'ee' lowercase epsilon, euro.*/ call charbits , ' '||, ' '||, ' 1111 '||, ' 11111111 '||, ' 11 '||, ' 111111 '||, ' 111111 '||, ' 11 '||, ' 11111111 '||, ' 111111 '||, ' '||, ' ' /*──────────────────────*/ _=c2x("∩") /* x'ef' intersection.*/ call charbits , ' '||, ' 1111 '||, ' 111111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("≡") /* x'f0' congruent.*/ call charbits , ' '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("±") /* x'f1' plus or minus sign.*/ call charbits , ' 11 '||, ' 11 '||, ' 11 '||, ' 11111111 '||, ' 11111111 '||, ' 11 '||, ' 11 '||, ' 11 '||, ' '||, ' 11111111 '||, ' 11111111 '||, ' ' /*──────────────────────*/ _=c2x("≥") /* x'f2' greater than or equal to*/ call charbits , ' 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' 111'||, ' 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' '||, ' 11111111111'||, ' 11111111111'

/*──────────────────────*/ _=c2x("≤") /* x'f3' less than or equal to.*/ call charbits , ' 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, '111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' 111 '||, ' '||, '11111111111 '||, '11111111111 '

/*──────────────────────*/ _=c2x("÷") /* x'f6' division.*/ call charbits , ' '||, ' '||, ' 11 '||, ' 11 '||, ' '||, '111111111111'||, '111111111111'||, ' '||, ' 11 '||, ' 11 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("≈") /* x'f7' approximately equal to.*/ call charbits , ' '||, ' 111 '||, ' 111111 111'||, '1111 11111 '||, '111 111 '||, ' '||, ' 111 '||, ' 111111 111'||, '1111 11111 '||, '111 111 '||, ' '||, ' '

/*──────────────────────*/ _=c2x("°") /* x'f8' degree.*/ call charbits , ' 1111 '||, ' 111111 '||, ' 11 11 '||, ' 11 11 '||, ' 111111 '||, ' 1111 '||, ' '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("∙") /* x'f9' bullet.*/ call charbits , ' '||, ' '||, ' '||, ' 1111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 1111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("√") /* x'fb' root, radical, check mark.*/ call charbits , ' 111111'||, ' 111111'||, ' 11 '||, ' 11 '||, ' 11 '||, ' 11 '||, '111 11 '||, '1111 11 '||, ' 11 11 '||, ' 1111 '||, ' 111 '||, ' 11 '

/*──────────────────────*/ _=c2x("ⁿ") /* x'fc' letter n, superscript.*/ call charbits , ' 111 11111 '||, ' 1111111111 '||, ' 111 111 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' 11 11 '||, ' '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("²") /* x'fd' digit 2, superscript.*/ call charbits , ' 11111111 '||, ' 1111111111 '||, ' 111 111 '||, ' 111 '||, ' 11 '||, ' 11 '||, ' 1111111111 '||, ' 1111111111 '||, ' '||, ' '||, ' '||, ' '

/*──────────────────────*/ _=c2x("■") /* x'fe' square bullet.*/ call charbits , ' '||, ' '||, ' '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' 111111 '||, ' '||, ' '||, ' '

/*──────────────────────*/ /* x'ff' (no graphic character).*/


epi.= epi.1="return left(?,36,0)" epi.2=" "

nextepi=80 /*start the epilogue at 80 (+1).*/

 do k=2 to words(labs)                /*write all lines got with labels*/
 _=word(labs,k)                       /*get a label from the label list*/
 call epidef asub._                   /*define the next EPI asub,      */
 end

epi.99="/* ∙∙∙ end-of-program. ∙∙∙ */"

 do k=0 for 100
 if epi.k\== then call wr epi.k
 end

call $t tops !fn 'has written('commas(nr)")records to the file:("tfid.0')' call $t '.P=1' tops !fn 'is creating the files:' fids "from the templete("tfid.0')'

 do k=1 for 2
 call it @copy tfid.0 tfid.k '>NUL'
 end

call $t '.P=1' tops !fn 'is invoking REXX to optimize the' fids "programs."

 do k=1 for 2
 @rexx '/l /o' tfid.k
 end

if cop then do

           call $t '.P=1' tops !fn 'is coping the' fids "programs to("@$')'
             do k=1 for 2
             call it @copy tfid.1 @$ "/Y >NUL"
             end
           end
      else call $t '.P=1' tops 'The' fids "programs should be copied to the("@$')directory.'
 do k=0 to 0+2*cop
 @erase tfid.k
 end

exit


/*─────────────────────────────CHARBITS subroutine──────────────────────*/ charbits:stro=arg(1) _=right('0'_,2) if length(stro)\==12*12 then call er 30,x2c(_) 'bitstring' 144 strb=translate(stro,0,' ') if \isbin(strb) then call er 48,"bitstring" x2c(_) str=b2x(strb) strb=translate(str,,0) len=length(str) strl=reverse(strip(reverse(strb),'T')) l00s=len-length(strl) strr=strip(strb,'T') r00s=len-length(strip(strb,'T'))

 select
 when str==copies(0,36)      then nstr=0                  /*all 0s.*/
 when str==f36               then nstr="copies('f',36)"   /*all 1s.*/
 when (l00s-3>r00s) & l00s>5 then nstr="j('"strl"')"      /*leading 0s.*/
 otherwise                        nstr="'"strr"'"     /*no trailing 0s.*/
 end

nstr=translate(nstr,0,' ') __=x2c(_) if c2d(__)<32 then __=_ /*if < '20x', don't show char.*/ call wr "if _=='"_"'" scomm right(__,2) ecomm 'then ?='nstr return 0


/*═════════════════════════════general 1-line subs══════════════════════*/ !all:!!=!;!=space(!);upper !;call !fid;!nt=right(!var('OS'),2)=='NT';!cls=word('CLS VMFCLEAR CLRSCREEN',1+!cms+!tso*2);if arg(1)\==1 then return 0;if wordpos(!,'? ?SAMPLES ?AUTHOR ?FLOW')==0 then return 0;!call=']$H';call '$H' !fn !;!call=;return 1 !cal:if symbol('!CALL')\=="VAR" then !call=;return !call !env:!env='ENVIRONMENT';if !sys=='MSDOS'|!brexx|!r4|!roo then !env='SYSTEM';if !os2 then !env='OS2'!env;!ebcdic=1=='f0'x;if !crx then !env='DOS';return !fid:parse upper source !sys !fun !fid . 1 . . !fn !ft !fm .;call !sys;if !dos then do;_=lastpos('\',!fn);!fm=left(!fn,_);!fn=substr(!fn,_+1);parse var !fn !fn '.' !ft;end;return word(0 !fn !ft !fm,1+('0'arg(1))) !rex:parse upper version !ver !vernum !verdate .;!brexx='BY'==!vernum;!kexx='KEXX'==!ver;!pcrexx='REXX/PERSONAL'==!ver|'REXX/PC'==!ver;!r4='REXX-R4'==!ver;!regina='REXX-REGINA'==left(!ver,11);!roo='REXX-ROO'==!ver;call !env;return !sys:!cms=!sys=='CMS';!os2=!sys=='OS2';!tso=!sys=='TSO'|!sys=='MVS';!vse=!sys=='VSE';!dos=pos('DOS',!sys)\==0|pos('WIN',!sys)\==0|!sys=='CMD';!crx=left(!sys,6)=='DOSCRX';call !rex;return !var:call !fid;if !kexx then return space(dosenv(arg(1)));return space(value(arg(1),,!env)) $fact!:procedure;parse arg x _ .;l=length(x);n=l-length(strip(x,'T',"!"));if n<=-n|_\==|arg()\==1 then return x;z=left(x,l-n);if z<0|\isint(z) then return x;return $fact(z,n) $fact:procedure;parse arg x _ .;arg ,n ! .;n=p(n 1);if \isint(n) then n=0;if x<-n|\isint(x)|n<1|_||!\==|arg()>2 then return x||copies("!",max(1,n));!=1;s=x//n;if s==0 then s=n;do j=s to x by n;!=!*j;end;return ! $sfxa:parse arg ,s,m;arg u,c;if pos(left(s,2),u)\==0 then do j=length(s) to compare(s,c)-1 by -1;if right(u,j)\==left(c,j) then iterate;_=left(u,length(u)-j);if isnum(_) then return m*_;leave;end;return arg(1) $sfxf:parse arg y;if right(y,1)=='!' then y=$fact!(y);if \isnum(y) then y=$sfxz();if isnum(y) then return y;return $sfxm(y) $sfxm:parse arg z;arg w;b=1000;if right(w,1)=='I' then do;z=shorten(z);w=z;upper w;b=1024;end;p=pos(right(w,1),'KMGTPEZYXWVU');if p==0 then return arg(1);n=shorten(z);r=num(n,f,1);if isnum(r) then return r*b**p;return arg(1) $sfxz:return $sfxa($sfxa($sfxa($sfxa($sfxa($sfxa(y,'PAIRs',2),'DOZens',12),'SCore',20),'GREATGRoss',1728),'GRoss',144),'GOOGOLs',1e100) $t:!call="]$T";call '$T' arg(1);!call=;return appenda:procedure;parse arg x,_;if right(x,length(_))\==_ then x=x||_;return x changestr:procedure;parse arg o,h,n;r=;w=length(o);if w==0 then return n||h;do forever;parse var h y (o) _ +(w) h;if _== then return r||y;r=r||y||n;end commas:procedure; parse arg _; n=_'.9'; #=123456789; b=verify(n,#,"M"); e=verify(n,#'0',,verify(n,#"0.",'M'))-4; do j=e to b by -3; _=insert(',',_,j); end /*j*/; return _ epidef:nextepi=nextepi+1;epi.nextepi=arg(1);return er:parse arg _1,_2;call '$ERR' "14"p(_1) p(word(_1,2) !fid(1)) _2;if _1<0 then return _1;exit result err:call er '-'arg(1),arg(2);return erx:call er '-'arg(1),arg(2);exit halt:call er .1 hascol:return pos(':',arg(1))\==0 homedrive:if symbol('HOMEDRIVE')\=="VAR" then homedrive=p(!var('HOMEDRIVE') 'C:');return homedrive int:if \isint(num(arg(1),arg(2))) then call er 92,arg(1) arg(2);return arg(1)/1 int:int=num(arg(1),arg(2));if \isint(int) then call er 92,arg(1) arg(2);return int/1 isbin:return datatype(arg(1),'B') isint:return datatype(arg(1),'W') isnum:return datatype(arg(1),'N') it:"ARG"(1);if rc==0 then return;call er 68,rc arg(1) j:return right(arg(1),36,0) novalue:!sigl=sigl;call er 17,!fid(2) !fid(3) !sigl condition('D') sourceline(!sigl) num:procedure;parse arg x .,f,q;if x== then return x;if isnum(x) then return x/1;x=space(translate(x,,','),0);if \isnum(x) then x=$sfxf(x);if isnum(x) then return x/1;if q==1 then return x;if q== then call er 53,x f;call erx 53,x f p:return word(arg(1),1) prefixa:procedure;parse arg x,_;if left(x,length(_))\==_ then x=_||x;return x shorten:procedure;parse arg a,n;return left(a,max(0,length(a)-p(n 1))) squish:return space(translate(arg(1),,word(arg(2) ',',1)),0) syntax:!sigl=sigl;call er 13,!fid(2) !fid(3) !sigl !cal() condition('D') sourceline(!sigl) wr:nr=nr+1;call $t fid.0 ".C=darkblue .UT='0F"xblank"'x" arg(1);return</lang>