I'm working on modernizing Rosetta Code's infrastructure. Starting with communications. Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)

"$BLOCK--.REX"

From Rosetta Code

$BLOCK__.REX[edit]

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 [email protected] then cop=1
when [email protected] 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