{ ===================================================== }
{    74LP253                                            }
{ ===================================================== }
logicname 74LP253

{ ----------------------------------------------------- }
{    手続き譜                                           }
{ ----------------------------------------------------- }
procedure mpx2to4
input  D[4];
input  SEL[2];
output Y;

   switch(SEL)
      case 0: Y=D.0;
      case 1: Y=D.1;
      case 2: Y=D.2;
      case 3: Y=D.3;
   endswitch

endp

{ ----------------------------------------------------- }
{    実効譜                                             }
{ ----------------------------------------------------- }
entity TTL
input  STA,STB;
input  DA[4],DB[4];
input  SELA[2],SELB[2];
inout  YA,YB;
output TP_YA,TP_YB;  {<font COLOR="red">仮端子</font>}
bitn   ya,yb;
bitn   nc;
bitn   sta,stb;

   enable(YA,nc,ya,sta)
   enable(YB,nc,yb,stb)

   sta=STA;
   stb=STB;

   ya=mpx2to4(DA,SELA);
   yb=mpx2to4(DB,SELB);

   TP_YA=ya;
   TP_YB=yb;
ende

{ ----------------------------------------------------- }
{    機能実行譜                                         }
{ ----------------------------------------------------- }
entity sim
output STA,STB;
output DA[4],DB[4];
output SELA[2],SELB[2];
output YA,YB;
output TP_YA,TP_YB;
bitr   tc[5];

   part TTL(STA,STB,DA,DB,SELA,SELB,YA,YB,TP_YA,TP_YB)
   
   tc=tc+1;

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - }
{    A                                                  }
{ - - - - - - - - - - - - - - - - - - - - - - - - - - - }
   switch(tc)
      case 5:  DA.0=0; SELA=0;
      case 6:  DA.0=1; SELA=0;
      case 7:  DA.1=0; SELA=1;
      case 8:  DA.1=1; SELA=1;
      case 9:  DA.2=0; SELA=2;
      case 10: DA.2=1; SELA=2;
      case 11: DA.3=0; SELA=3;
      case 12: DA.3=1; SELA=3;
   endswitch

   if ((tc>=5)&(tc<=15)) STA=0; else STA=1; endif

{ - - - - - - - - - - - - - - - - - - - - - - - - - - - }
{    B                                                  }
{ - - - - - - - - - - - - - - - - - - - - - - - - - - - }
   switch(tc)
      case 5:  DB.0=0; SELB=0;
      case 6:  DB.0=1; SELB=0;
      case 7:  DB.1=0; SELB=1;
      case 8:  DB.1=1; SELB=1;
      case 9:  DB.2=0; SELB=2;
      case 10: DB.2=1; SELB=2;
      case 11: DB.3=0; SELB=3;
      case 12: DB.3=1; SELB=3;
   endswitch

   if ((tc>=5)&(tc<=15)) STB=0; else STB=1; endif

ende

endlogic