%\input l_pic
%\input l_frame
%\let\Line\line
\def\DVI{{\tt DVI}}
\def\OutputInFigtotal{output}
\def\DriverInFigtotal{\DVI{} driver}

%========== figtotal.tex ===================================================
% figtotal.tex                                  25 Mar 91
%------------------------------------------------------------
% (c) 1991 by J.Schrod (TeXsys).

%
% Picture of the components and used file types of TeX (data flow)
%   (thanks to Nico Poppelier who contributed this better structured version)
%
% LaTeX picture


% check if \OutputInFigtotal and \DriverInFigtotal is defined

\ifx \OutputInFigtotal\undefined
   \errhelp{It should be defined as the term `output' in the used language}
   \errmessage{You must define \string\OutputInFigtotal}
   \def\OutputInFigtotal{output}
\fi
\ifx \DriverInFigtotal\undefined
   \errhelp{It should be defined as the term `driver' in the used language}
   \errmessage{You must define \string\DriverInFigtotal}
   \def\DriverInFigtotal{\DVI{} driver}
\fi



\def\file#1{\framebox(3,2){\tt \uppercase{#1}}}
\def\prog(#1)#2{%
   \oval(#1,2)%
   \makebox(0,0){#2}%
   }


% X and Y variables

\newcount\X \newcount\Y         % needed for \Program

% macros for objects

\def\File(#1,#2)#3{%
  \put(#1,#2){\framebox(20,10){\tt\uppercase{#3}}}}
\def\CopyFile(#1,#2)#3{%
  \put(#1,#2){\dashbox{2}(20,10){#3}}}
\def\Program(#1,#2)#3{%
  \X=#1 \Y=#2 \advance\X by 15 \advance\Y by 5
  \put(\X,\Y){\oval(30,10)}%
  \put(#1,#2){\makebox(30,10){#3}}}
\def\Device(#1,#2)#3{%
  \put(#1,#2){\Line(1,2){5}} \put(#1,#2){\Line(1,0){25}}
  \X=#1 \Y=#2 \advance\X by 30 \advance\Y by 10
  \put(\the\X,\the\Y){\Line(-1,-2){5}} \put(\the\X,\the\Y){\Line(-1,0){25}}
  \put(#1,#2){\makebox(30,10){#3}}}


% don't ask me why it's 0.7mm, that's from Nico!  -js

\unitlength=0.7mm


\picture(260,160)(60,0) %40/80
%
% this code provides a dotted grid that makes modification easier
%
%\multiput( 70,  0)(10,0){20}{%
%   \vbox to 160\unitlength{%
%      \leaders
%         \vbox to 2.5\unitlength{%
%           \vfill
%           \hbox{\fivrm .}%
%           \vfill
%           }%
%        \vfill
%      }%
%   }
%\multiput( 70,  0)(0,10){17}{%
%   \hbox to 190\unitlength{%
%      \leaders
%         \hbox to 2.5\unitlength{%
%           \hfill
%           \hbox{\fivrm .}%
%           \hfill
%           }%
%        \hfill
%      }%
%   }
%
%
%
% IniTeX block
%
    \File( 75,145){tfm} \File(105,145){hyp} \File(135,145){mac}
    \File(165,145){pool}
\multiput( 85,145)(30,0){4}{\Line(0,-1){5}}
     \put( 85,140){\Line(1,0){90}}
     \put(115,140){\vector(0,-1){5}}
 \Program(100,125){\INITeX}
     \put(115,125){\Line(0,-1){5}}
     \put(100,120){\Line(1,0){30}}
\multiput(100,120)(30,0){2}{\vector(0,-1){5}}
    \File( 90,105){log}
    \File(120,105){fmt} \File(150,105){tex}
    \File(180,105){sty} \File(210,105){mac} \File(240,105){tfm}
%
%
% TeX block
%
\multiput(130,105)(30,0){5}{\Line(0,-1){5}}
     \put(130,100){\Line(1,0){120}}
     \put(175,100){\vector(0,-1){5}}
 \Program(160, 85){\TeX82}
     \put(175, 85){\Line(0,-1){5}}
     \put(130, 80){\Line(1,0){90}}
\multiput(130, 80)(30,0){4}{\vector(0,-1){5}}
    \File(120, 65){dvi} \File(150, 65){log}
    \File(180, 65){idx} \File(210, 65){aux}
% loop back to TeX
     \put(230, 70){\Line(1,0){10}}
     \put(240, 70){\vector(0,1){10}}
     \put(240, 80){\Line(0,1){10}}
%
%
% BibTeX block
%
    \File(195, 45){bib} \File(225, 45){bst}
\multiput(205, 45)(30,0){2}{\Line(0,-1){5}}
     \put(205, 40){\Line(1,0){30}}
     \put(220, 65){\vector(0,-1){30}}
 \Program(205, 25){\BibTeX}
     \put(220, 25){\Line(0,-1){5}}
     \put(205, 20){\Line(1,0){30}}
\multiput(205, 20)(30,0){2}{\vector(0,-1){5}}
    \File(195,  5){blg} \File(225,  5){bbl}
% loop back to TeX
     \put(245, 10){\Line(1,0){10}}
     \put(255, 10){\vector(0,1){10}}
     \put(255, 20){\Line(0,1){70}}
%
%
% MakeIndex block
%
    \File(150, 45){ist}
     \put(190, 65){\Line(0,-1){20}}
\multiput(160, 45)(30,0){2}{\Line(0,-1){5}}
     \put(160, 40){\Line(1,0){30}}
     \put(175, 40){\vector(0,-1){5}}
 \Program(160, 25){\MakeIndex}
     \put(175, 25){\Line(0,-1){5}}
     \put(145, 20){\Line(1,0){30}}
\multiput(145, 20)(30,0){2}{\vector(0,-1){5}}
    \File(135,  5){ilg} \File(165,  5){ind}
% loop back to TeX
     \put(175,  5){\Line(0,-1){5}}
     \put(175,  0){\Line(1,0){85}}
     \put(260,  0){\vector(0,1){10}}
     \put(260, 10){\Line(0,1){80}}
     \put(260, 90){\vector(-1,0){70}}
%
%
% device driver block
%
    \File( 90, 65){fnt}
\multiput(100, 65)(30,0){2}{\Line(0,-1){25}}
     \put(100, 40){\Line(1,0){30}}
     \put(115, 40){\vector(0,-1){5}}
 \Program(100, 25){\DriverInFigtotal}
     \put(115, 25){\vector(0,-1){10}}
  \Device(100,  5){\OutputInFigtotal}
%
%
\endpicture


\endinput
