"$BLOCK--.REX"

From Rosetta Code
Revision as of 08:08, 21 June 2023 by Katsumi a.k.a. Upperdecker2562 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

$BLOCK__.REX

This Classic REXX program is used to generate (create) the $BLOCK.REX program.

/**/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  ?    */

#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  ?    */

@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    '||,
'            '||,
'            '||,
'            '

/*──────────────────────*/ _='08'x     /* 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 exclamation 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