<> <> <> Directory BitOps, Dragon; Open BitOps; CELLTYPE "MPads" PORTS[ <> PhA, PhB> <
> MCmdAB=EnumType["Dragon.MBusCommands"], MDataAB=INT[32], MParityAB=BOOL, MNShared=BOOL, MNError>BOOL, MRq>BOOL, MNewRq>BOOL, MGnt> <> <> ResetAB> <> PhAb, nPhAb, PhBb, nPhBb>BOOL, Resetb>BOOL, <<>> <> MCmdIn>EnumType["Dragon.MBusCommands"], MCmdOutABBOOL, MNSharedDriveHighCBOOL ] State MPadRegAB: BitDWord, MPadRegParityAB: BOOL EvalSimple PhAb _ PhA; nPhAb _ NOT PhA; PhBb _ PhB; nPhBb _ NOT PhB; Resetb _ ResetAB; IF MCmdDriveC THEN MCmdAB _ MCmdOutAB; MCmdIn _ MCmdAB; IF PhAb THEN { MPadRegAB _ MDataI; MPadRegParityAB _ MParityI; }; IF PhBb THEN { MDataI _ MDataAB; MParityI _ MParityAB; }; IF MDataDriveC THEN { MDataAB _ MPadRegAB; MParityAB _ MPadRegParityAB; }; MSharedSense _ NOT MNShared; IF MNSharedDriveHighC THEN MNShared _ TRUE; IF MNSharedDriveLowC THEN MNShared _ FALSE; IF MNErrorDriveLow THEN MNError _ FALSE; MRq _ MRqIBA; IF MNewRqEnableC THEN MNewRq _ MNewRqIBA; MGntSenseA _ MGnt; ENDCELLTYPE