예제 #1
0
파일: BisqAPU.cs 프로젝트: stuff2600/RAEmus
 public RegBitSet(RegBitSetStore store, int bitno, int nbits, int dim = 1, int index = 0)
 {
     this.store = store;
     this.bitno = bitno;
     this.nbits = nbits;
     this.dim   = dim;
     this.index = index;
     mask       = ((1 << (nbits / 2)) << (nbits - (nbits / 2))) - 1;
 }
예제 #2
0
파일: BisqAPU.cs 프로젝트: ddugovic/RASuite
				public SignedRegBitSet(RegBitSetStore store, int bitno, int nbits, int dim = 1, int index = 0)
				{
					this.store = store;
					this.bitno = bitno;
					this.nbits = nbits;
					this.dim = dim;
					this.index = index;
					mask = ((1 << (nbits / 2)) << (nbits - (nbits / 2))) - 1;
				}
예제 #3
0
파일: BisqAPU.cs 프로젝트: stuff2600/RAEmus
 public APUdata()
 {
     bs = new RegBitSetStore(5);
     ChannelsEnabled  = new RegBitSet(bs, 15, 1, 5, 0);
     frame_delay      = new RegBitSet(bs, 0, 15, 5, 0);
     frame            = new RegBitSet(bs, 0, 8, 5, 1);
     FiveCycleDivider = new RegBitSet(bs, 8, 1, 5, 1);
     IRQdisable       = new RegBitSet(bs, 9, 1, 5, 1);
     DMC_CycleCost    = new RegBitSet(bs, 10, 3, 5, 1);
     IRQ_delay        = new RegBitSet(bs, 0, 15, 5, 2);
 }
예제 #4
0
파일: BisqAPU.cs 프로젝트: stuff2600/RAEmus
                public APUchannel()
                {
                    bs = new RegBitSetStore(11);

                    reg0                 = new RegBitSet(bs, 0, 8, 11, 0);
                    DutyCycle            = new RegBitSet(bs, 6, 2, 11, 0);
                    EnvDecayDisable      = new RegBitSet(bs, 4, 1, 11, 0);
                    EnvDecayRate         = new RegBitSet(bs, 0, 4, 11, 0);
                    EnvDecayLoopEnable   = new RegBitSet(bs, 5, 1, 11, 0);
                    FixedVolume          = new RegBitSet(bs, 0, 4, 11, 0);
                    LengthCounterDisable = new RegBitSet(bs, 5, 1, 11, 0);
                    LinearCounterInit    = new RegBitSet(bs, 0, 7, 11, 0);
                    LinearCounterDisable = new RegBitSet(bs, 7, 1, 11, 0);

                    reg1          = new RegBitSet(bs, 8, 8, 11, 0);
                    SweepShift    = new RegBitSet(bs, 8, 3, 11, 0);
                    SweepDecrease = new RegBitSet(bs, 11, 1, 11, 0);
                    SweepRate     = new RegBitSet(bs, 12, 3, 11, 0);
                    SweepEnable   = new RegBitSet(bs, 15, 1, 11, 0);
                    PCMlength     = new RegBitSet(bs, 8, 8, 11, 0);

                    reg2       = new RegBitSet(bs, 16, 8, 11, 0);
                    NoiseFreq  = new RegBitSet(bs, 16, 4, 11, 0);
                    NoiseType  = new RegBitSet(bs, 23, 1, 11, 0);
                    WaveLength = new RegBitSet(bs, 16, 11, 11, 0);

                    reg3 = new RegBitSet(bs, 24, 8, 11, 0);
                    LengthCounterInit = new RegBitSet(bs, 27, 5, 11, 0);
                    LoopEnabled       = new RegBitSet(bs, 30, 1, 11, 0);
                    IRQenable         = new RegBitSet(bs, 31, 1, 11, 0);

                    length_counter = new SignedRegBitSet(bs, 0, 32, 11, 1);
                    linear_counter = new SignedRegBitSet(bs, 0, 32, 11, 2);
                    address        = new SignedRegBitSet(bs, 0, 32, 11, 3);
                    envelope       = new SignedRegBitSet(bs, 0, 32, 11, 4);
                    sweep_delay    = new SignedRegBitSet(bs, 0, 32, 11, 5);
                    env_delay      = new SignedRegBitSet(bs, 0, 32, 11, 6);
                    wave_counter   = new SignedRegBitSet(bs, 0, 32, 11, 7);
                    hold           = new SignedRegBitSet(bs, 0, 32, 11, 8);
                    phase          = new SignedRegBitSet(bs, 0, 32, 11, 9);
                    level          = new SignedRegBitSet(bs, 0, 32, 11, 10);
                }
예제 #5
0
파일: BisqAPU.cs 프로젝트: ddugovic/RASuite
				public APUchannel()
				{
					bs = new RegBitSetStore(11);
					
					reg0 = new RegBitSet(bs,0, 8, 11, 0);
					DutyCycle = new RegBitSet(bs,6, 2, 11, 0);
					EnvDecayDisable = new RegBitSet(bs,4, 1, 11, 0);
					EnvDecayRate = new RegBitSet(bs,0, 4, 11, 0);
					EnvDecayLoopEnable = new RegBitSet(bs,5, 1, 11, 0);
					FixedVolume = new RegBitSet(bs,0, 4, 11, 0);
					LengthCounterDisable = new RegBitSet(bs,5, 1, 11, 0);
					LinearCounterInit = new RegBitSet(bs,0, 7, 11, 0);
					LinearCounterDisable = new RegBitSet(bs,7, 1, 11, 0);
					
					reg1 = new RegBitSet(bs,8, 8, 11, 0);
					SweepShift = new RegBitSet(bs,8, 3, 11, 0);
					SweepDecrease = new RegBitSet(bs,11, 1, 11, 0);
					SweepRate = new RegBitSet(bs,12, 3, 11, 0);
					SweepEnable = new RegBitSet(bs,15, 1, 11, 0);
					PCMlength = new RegBitSet(bs,8, 8, 11, 0);
					
					reg2 = new RegBitSet(bs,16, 8, 11, 0);
					NoiseFreq = new RegBitSet(bs,16, 4, 11, 0);
					NoiseType = new RegBitSet(bs,23, 1, 11, 0);
					WaveLength = new RegBitSet(bs,16, 11, 11, 0);
					
					reg3 = new RegBitSet(bs,24, 8, 11, 0);
					LengthCounterInit = new RegBitSet(bs,27, 5, 11, 0);
					LoopEnabled = new RegBitSet(bs,30, 1, 11, 0);
					IRQenable = new RegBitSet(bs,31, 1, 11, 0);
					
					length_counter = new SignedRegBitSet(bs,0, 32, 11, 1);
					linear_counter = new SignedRegBitSet(bs,0, 32, 11, 2);
					address = new SignedRegBitSet(bs,0, 32, 11, 3);
					envelope = new SignedRegBitSet(bs,0, 32, 11, 4);
					sweep_delay = new SignedRegBitSet(bs,0, 32, 11, 5);
					env_delay = new SignedRegBitSet(bs,0, 32, 11, 6);
					wave_counter = new SignedRegBitSet(bs,0, 32, 11, 7);
					hold = new SignedRegBitSet(bs,0, 32, 11, 8);
					phase = new SignedRegBitSet(bs,0, 32, 11, 9);
					level = new SignedRegBitSet(bs,0, 32, 11, 10);
				}
예제 #6
0
파일: BisqAPU.cs 프로젝트: ddugovic/RASuite
				public APUdata()
				{
					bs = new RegBitSetStore(5);
					ChannelsEnabled = new RegBitSet(bs, 15, 1, 5, 0);
					frame_delay = new RegBitSet(bs, 0, 15, 5, 0);
					frame = new RegBitSet(bs, 0, 8, 5, 1);
					FiveCycleDivider = new RegBitSet(bs, 8, 1, 5, 1);
					IRQdisable = new RegBitSet(bs, 9, 1, 5, 1);
					DMC_CycleCost = new RegBitSet(bs, 10, 3, 5, 1);
					IRQ_delay = new RegBitSet(bs, 0, 15, 5, 2);
				}