FROM iomd.ioctlc      IMPORT $IOCTL
FROM StdParts.Misc    IMPORT $Sink

BLOCK IOCTL(da[1:0], dag_tc[3:0], data[7:0], dmach[2:0], drq[3:0], dsize[1:0], ioden[3:0], iodir[3:0], la[1:0],
lah[15:0], Nfcas[3:0], snden[1:0], cas, cdrq, clk16, dmagoing, ioctlreg, iodec, io32dec,
lwrite, Ninit, Niogt, Niorqi, pdrq, prog, rclk, ready, ref8m, reset, snddir)
=>(Ndack[3:0], Nfrd[3:0], fwt_lat[3:0], fwt_s[1:0], ioch[1:0], clk2, frd_oe, frd_bh, iodrq,
lrnw, Nblw, Nccs, Ncdack, Neasis, Nenbd, Nior, Niogti, Niorq, Niow, Nmemc, Nms, Npboe, Nrbe, Nsccs, 
Nsio, Nscdack, Nsndcs, Nspdack, Nwbe, sound, snd0drq, snd1drq, tc)

     ioctl = $IOCTL(da[1:0], dag_tc[3:0], data[7:0], dmach[2:0], drq[3:0], dsize[1:0], ioden[3:0], iodir[3:0], 
              la[1:0], lah[15:0], Nfcas[3:0], snden[1:0], cas, cdrq, clk2, clk16, dmagoing, indma, into0, in2,
              into2, ioctlreg, iodec,io32dec, io_end, io_start, ioc_start, lwrite, memc_start, Ninit,
              Niogt, Niogti, Nior, Niorqi, Niow, Nscdack, Nspdack, pdrq, pio_free, prog, ramc, rclk, rdrq, ram_start,
              ready, readys,ref8m, reset, snd_end, snddir, snddrq, sndrw, snd_start, swdone, was8ck,wasW,free, freed, bus, biodma)
           => (Ndack[3:0], Nfrd[3:0], fwt_lat[3:0],fwt_s[1:0], ioch[1:0], end_io,frd_oe, frd_bh, iodrq, lrnw, Nblw,
               Nccs, Ncdack, Neasis, Nenbd, Niorq, Nmemc, Nms, Npboe, Nrbe, Nsccs, Nsio, Nsndcs, Nwbe, sound, snd0drq,
               snd1drq, tc, dir, ioend, bytes, ioc[1:0],pio[2:0], spd[1:0],dma[3:0],dmasm[1:0],iochan[3:0],
               scount[1:0],drqs[3:0])
              WITH (delay = (gt=ns_3))

     iosink = $Sink(iosunk(dmasm[1:0],dma[3:0],spd[1:0],io_start,dir,free,bus,iodrq, rdrq,into0,in2,into2,
                    ioc_start,ioc[1:0],iochan[3:0],pio[2:0],memc_start))
     iosnk2 = $Sink(iosnk1(scount[1:0],bytes,readys,snd_end,indma,ioend,sndrw,snd_start,ramc,snddrq,freed,
                    pio_free,io_end, drqs[3:0],end_io,wasW,swdone,was8ck,iodrq,ram_start,biodma))

END {IOCTL}

