예제 #1
0
파일: dkong.cs 프로젝트: kwanboy/mcs
        //WRITE_LINE_MEMBER(write_line)  // discrete_device
        public void discrete_device_write_line_DS_SOUND7_INP(int state)
        {
            discrete_device device = (discrete_device)subdevice("discrete");

            device.write_line(DS_SOUND7_INP, state);
        }
예제 #2
0
파일: disc_wav.cs 프로젝트: kwanboy/mcs
        static int dss_lfsr_function(discrete_device dev, int myfunc, int in0, int in1, int bitmask)
        {
            int retval;

            in0 &= bitmask;
            in1 &= bitmask;

            switch (myfunc)
            {
                case DISC_LFSR_XOR:
                    retval = in0 ^ in1;
                    break;
                case DISC_LFSR_OR:
                    retval = in0 | in1;
                    break;
                case DISC_LFSR_AND:
                    retval = in0 & in1;
                    break;
                case DISC_LFSR_XNOR:
                    retval = in0 ^ in1;
                    retval = retval ^ bitmask;  /* Invert output */
                    break;
                case DISC_LFSR_NOR:
                    retval = in0 | in1;
                    retval = retval ^ bitmask;  /* Invert output */
                    break;
                case DISC_LFSR_NAND:
                    retval = in0 & in1;
                    retval = retval ^ bitmask;  /* Invert output */
                    break;
                case DISC_LFSR_IN0:
                    retval = in0;
                    break;
                case DISC_LFSR_IN1:
                    retval = in1;
                    break;
                case DISC_LFSR_NOT_IN0:
                    retval = in0 ^ bitmask;
                    break;
                case DISC_LFSR_NOT_IN1:
                    retval = in1 ^ bitmask;
                    break;
                case DISC_LFSR_REPLACE:
                    retval = in0 & ~in1;
                    retval = retval | in1;
                    break;
                case DISC_LFSR_XOR_INV_IN0:
                    retval = in0 ^ bitmask; /* invert in0 */
                    retval = retval ^ in1;  /* xor in1 */
                    break;
                case DISC_LFSR_XOR_INV_IN1:
                    retval = in1 ^ bitmask; /* invert in1 */
                    retval = retval ^ in0;  /* xor in0 */
                    break;
                default:
                    dev.discrete_log("dss_lfsr_function - Invalid function type passed");
                    retval = 0;
                    break;
            }
            return retval;
        }