%%%%%%%%%%%%%%%%%%%%%%%%%%% iso88596.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% iso88596.sty
% Scanner for ISO 8859-6 Code
% reuses the ASMO 449 scanner
% to install it, include it as a LaTeX style option "iso88596"
% with Plain TeX, say "\input iso88596.sty"
% to activate it, say "\setcode {iso8859-6}"
% 17.03.96
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (c) Klaus Lagally
%     Institut fuer Informatik
%     Universitaet Stuttgart
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\UsePackage {asmo449} % reuse asmo449 scanner
\catcode `\@ = 11
\a@ident {iso88596.sty} {3.04 ISO 8859-6 input encoding } {17.03.96}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def \is@scan #1>{% modified scanner call: token sequence -> \a@tokens
\iftest@scan \ifshow \else \a@verb #1>\fi
\tracingmacros = 1 \fi
\sc@next = {}\sc@rest = {}%
%\global\def \a@rest {}\a@tokens = {}\lowercase {\sc@beg #1>>}% transform
\gdef \a@rest {}\a@tokens = {}\lowercase {\sc@beg #1\@ \@@ }% transform
\iftest@scan \tracingmacros = 0 %
\expandafter \a@verb \expandafter (\the\a@tokens )>\fi }

\def \is@endscan {\gdef \a@scan {\is@scan }}
\def \is@endscan \@@ {\gdef \a@scan {\is@scan }}

%\def \is@back #1>>{% end scanning, push back into input
\def \is@back #1\@ \@@ {% end scanning, push back into input
\gdef \a@scan {\a@@scan }%
\gdef \a@rest {#1 \reset@iso }%
\global\let \test@token \test@rest }

\def \reset@iso {% after pushback
\gdef \a@scan {\is@scan }%
\gdef \sc@endscan {\is@endscan }}

\def \a@c@reset@iso {% after pushback
\reset@iso \test@token }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\def \a@iso {iso8859-6}		\def \a@is@asmo {asmo708}            
\let \is@setcode \setcode

\newcount \is@n  \newcount \is@m      

\def \set@iso {% substitute ISO 8859-6 scanner
\is@m = 32   \is@n = 160
\loop \lccode \is@n = \is@m
\ifnum 127 > \is@m \advance \is@m 1 \advance \is@n 1     
\repeat
\is@m = 193   \is@n = 225
\loop \catcode \is@n = 11 \catcode \is@m = 11
\ifnum 218 > \is@m \advance \is@m 1 \advance \is@n 1     
\repeat
\catcode 158 = 10  \catcode 160 = 10  \catcode 192 = 10  
\catcode 224 = 12  \catcode 255 = 15  
\set@asmo          \let \a@scan \is@scan 
\a@first = {"`^^e0}
\let \sc@back \is@back	\let \sc@endscan \is@endscan }

\def \setcode #1{\def \next {#1}% switch input coding
\ifx \next \a@iso \set@iso 
	\message {input coding set to ASMO 708 (ISO 8859-6) conventions}%
\else \ifx \next \a@is@asmo \set@iso 
	\message {input coding set to ASMO 708 (ISO 8859-6) conventions}%
\else \is@setcode {#1}%
\fi\fi }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\message {scanner for code ASMO 708 (ISO 8859-6) installed.}

\catcode `\@ = \asmoatcode
\endinput
%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
