%#!eptex -ini -etex
\let\dump\relax
\batchmode
\input plain

\errorstopmode
\catcode`@=11
\newcount\@tempcnta
\newcount\@tempcntb
\newcount\@tempcntc
\mathchardef\LIM=256

\def\MYCHAR#1{%
  \@tempcntc=\numexpr7*#1+"101\relax
  \@tempcnta=\@tempcntc\divide\@tempcnta 94
  \@tempcntb=\numexpr\@tempcntc-94*\@tempcnta+1\relax
  \ifnum\@tempcntb<0\advance\@tempcntb94 \advance\@tempcnta-1\fi
  \advance\@tempcnta18 % 18区以降
  \CNTA=\kuten\numexpr"100*\@tempcnta+\@tempcntb\relax
}

\newcount\CNT\newcount\CNTA
\CNT=0
\loop
  \MYCHAR\CNT
  \message{\the\CNT.}
  \prebreakpenalty\CNTA=\numexpr\CNT+1\relax
  \advance\CNT1\relax
  \ifnum\CNT<\LIM
\repeat

\newcount\CNTB

\loop
  \MYCHAR\CNTB
  \global\prebreakpenalty\CNTA=0
{%
\CNT=0
\loop
  \MYCHAR\CNT
  \count@=\numexpr -\CNT-1+\prebreakpenalty\CNTA\relax
  \ifnum\count@=0\else\ifnum\CNTB=\CNT\else\errmessage{<\the\CNTB, \the\CNT>}\fi\fi
  \advance\CNT1\relax
  \ifnum\CNT<\LIM
\repeat
}
  \MYCHAR\CNTB
  \global\prebreakpenalty\CNTA=\numexpr\CNTB+1\relax
  \advance\CNTB1\relax
  \ifnum\CNTB<\LIM
\repeat
\bye
