<> <> <> <> <<>> DIRECTORY Commander, Dragon, IFUPLAPass, IO, PLAOps, REFBit; IFUPLAPassImpl: CEDAR PROGRAM IMPORTS Commander, IO, PLAOps, REFBit = BEGIN OPEN IFUPLAPass, PLAOps; GenPasses: Commander.CommandProc = { GenPass: PROC [fileName, ioTypeName: IO.ROPE] = { pla: PLAOps.PLA _ PLAOps.NewPLA[ioTypeName, ioTypeName]; desc: REFBit.REFBitDesc = REFBit.Desc[pla.out]; FOR bitIndex: INT IN [0..desc.bitForm.size) DO REFBit.Set[pla.mask, bitIndex, TRUE]; REFBit.Set[pla.data, bitIndex, TRUE]; REFBit.Set[pla.out, bitIndex, TRUE]; PLAOps.SetOutForBE[pla, PLAOps.GetBEForDataMask[pla]]; REFBit.Set[pla.mask, bitIndex, FALSE]; REFBit.Set[pla.data, bitIndex, FALSE]; REFBit.Set[pla.out, bitIndex, FALSE]; ENDLOOP; [ ] _ PLAOps.ConvertTermListToCompleteSum[pla.termList, FALSE, FALSE, cmd.out]; [ ] _ PLAOps.FindAMinimalCover[pla.termList, 120, cmd.out]; PLAOps.WritePLAFile[fileName, cmd.out, pla]; }; GenPass["IFUPLARtDrFromPads.ttt", "IFUPLAPass.RtDrFromPads"]; GenPass["IFUPLARtDrToPads.ttt", "IFUPLAPass.RtDrToPads"]; GenPass["IFUPLALtDrFromPads.ttt", "IFUPLAPass.LtDrFromPads"]; GenPass["IFUPLALtDrToPads.ttt", "IFUPLAPass.LtDrToPads"]; GenPass["IFUPLALtDrDebug.ttt", "IFUPLAPass.LtDrDebug"]; }; Commander.Register[key:"GenPasses", proc: GenPasses]; END. <<>> <<>> <<>>