Lines Matching refs:F2608

3304 INLINE void YM2608IRQFlagWrite(FM_OPN *OPN, YM2608 *F2608, int v)  in YM2608IRQFlagWrite()  argument
3312 F2608->flagmask = (~(v&0x1f)); in YM2608IRQFlagWrite()
3313 FM_IRQMASK_SET(&OPN->ST, (F2608->irqmask & F2608->flagmask) ); in YM2608IRQFlagWrite()
3318 INLINE void YM2608IRQMaskWrite(FM_OPN *OPN, YM2608 *F2608, int v) in YM2608IRQMaskWrite() argument
3329 F2608->irqmask = v&0x1f; in YM2608IRQMaskWrite()
3330 FM_IRQMASK_SET(&OPN->ST, (F2608->irqmask & F2608->flagmask) ); in YM2608IRQMaskWrite()
3336 YM2608 *F2608 = (YM2608 *)chip; in ym2608_update_one() local
3337 FM_OPN *OPN = &F2608->OPN; in ym2608_update_one()
3338 YM_DELTAT *DELTAT = &F2608->deltaT; in ym2608_update_one()
3348 cch[0] = &F2608->CH[0]; in ym2608_update_one()
3349 cch[1] = &F2608->CH[1]; in ym2608_update_one()
3350 cch[2] = &F2608->CH[2]; in ym2608_update_one()
3351 cch[3] = &F2608->CH[3]; in ym2608_update_one()
3352 cch[4] = &F2608->CH[4]; in ym2608_update_one()
3353 cch[5] = &F2608->CH[5]; in ym2608_update_one()
3402 if( DELTAT->portstate&0x80 && ! F2608->MuteDeltaT ) in ym2608_update_one()
3408 if( F2608->adpcm[j].flag ) in ym2608_update_one()
3409 ADPCMA_calc_chan( F2608, &F2608->adpcm[j]); in ym2608_update_one()
3496 YM2608 *F2608 = (YM2608 *)chip; in ym2608_postload() local
3500 OPNPrescaler_w(&F2608->OPN,1,2); in ym2608_postload()
3501 F2608->deltaT.freqbase = F2608->OPN.ST.freqbase; in ym2608_postload()
3503 YM2608IRQMaskWrite(&F2608->OPN, F2608, F2608->REGS[0x29]); in ym2608_postload()
3507 (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.param,0,r); in ym2608_postload()
3508 (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.param,1,F2608->REGS[r]); in ym2608_postload()
3516 OPNWriteReg(&F2608->OPN,r,F2608->REGS[r]); in ym2608_postload()
3517 OPNWriteReg(&F2608->OPN,r|0x100,F2608->REGS[r|0x100]); in ym2608_postload()
3523 OPNWriteReg(&F2608->OPN,r,F2608->REGS[r]); in ym2608_postload()
3524 OPNWriteReg(&F2608->OPN,r|0x100,F2608->REGS[r|0x100]); in ym2608_postload()
3529 FM_ADPCMAWrite(F2608,1,F2608->REGS[0x111]); in ym2608_postload()
3531 FM_ADPCMAWrite(F2608,r,F2608->REGS[r+0x110]); in ym2608_postload()
3533 YM_DELTAT_postload(&F2608->deltaT , &F2608->REGS[0x100] ); in ym2608_postload()
3537 static void YM2608_save_state(YM2608 *F2608, const device_config *device) in YM2608_save_state() argument
3539 state_save_register_device_item_array(device, 0, F2608->REGS); in YM2608_save_state()
3540 FMsave_state_st(device,&F2608->OPN.ST); in YM2608_save_state()
3541 FMsave_state_channel(device,F2608->CH,6); in YM2608_save_state()
3543 state_save_register_device_item_array(device, 0, F2608->OPN.SL3.fc); in YM2608_save_state()
3544 state_save_register_device_item(device, 0, F2608->OPN.SL3.fn_h); in YM2608_save_state()
3545 state_save_register_device_item_array(device, 0, F2608->OPN.SL3.kcode); in YM2608_save_state()
3547 state_save_register_device_item(device, 0, F2608->addr_A1); in YM2608_save_state()
3549 FMsave_state_adpcma(device,F2608->adpcm); in YM2608_save_state()
3551 YM_DELTAT_savestate(device,&F2608->deltaT); in YM2608_save_state()
3557 YM2608 *F2608 = (YM2608 *)chip; in YM2608_deltat_status_set() local
3558 FM_STATUS_SET(&(F2608->OPN.ST), changebits); in YM2608_deltat_status_set()
3562 YM2608 *F2608 = (YM2608 *)chip; in YM2608_deltat_status_reset() local
3563 FM_STATUS_RESET(&(F2608->OPN.ST), changebits); in YM2608_deltat_status_reset()
3574 YM2608 *F2608; in ym2608_init() local
3577 if( (F2608 = (YM2608 *)malloc(sizeof(YM2608)))==NULL) in ym2608_init()
3580 memset(F2608,0,sizeof(YM2608)); in ym2608_init()
3584 free( F2608 ); in ym2608_init()
3588 F2608->OPN.ST.param = param; in ym2608_init()
3589 F2608->OPN.type = TYPE_YM2608; in ym2608_init()
3590 F2608->OPN.P_CH = F2608->CH; in ym2608_init()
3592 F2608->OPN.ST.clock = clock; in ym2608_init()
3593 F2608->OPN.ST.rate = rate; in ym2608_init()
3596 F2608->OPN.ST.timer_handler = timer_handler; in ym2608_init()
3597 F2608->OPN.ST.IRQ_Handler = IRQHandler; in ym2608_init()
3598 F2608->OPN.ST.SSG = ssg; in ym2608_init()
3606 F2608->deltaT.memory = (UINT8*)realloc(F2608->deltaT.memory, dram_size); in ym2608_init()
3607 F2608->deltaT.memory_size = dram_size; in ym2608_init()
3608 YM_DELTAT_calc_mem_mask(&F2608->deltaT); in ym2608_init()
3613 F2608->deltaT.status_set_handler = YM2608_deltat_status_set; in ym2608_init()
3614 F2608->deltaT.status_reset_handler = YM2608_deltat_status_reset; in ym2608_init()
3615 F2608->deltaT.status_change_which_chip = F2608; in ym2608_init()
3616 F2608->deltaT.status_change_EOS_bit = 0x04; /* status flag: set bit2 on End Of Sample */ in ym2608_init()
3617 F2608->deltaT.status_change_BRDY_bit = 0x08; /* status flag: set bit3 on BRDY */ in ym2608_init()
3618F2608->deltaT.status_change_ZERO_bit = 0x10; /* status flag: set bit4 if silence continues for mor… in ym2608_init()
3621 F2608->pcmbuf = (UINT8*)YM2608_ADPCM_ROM; in ym2608_init()
3622 F2608->pcm_size = 0x2000; in ym2608_init()
3627 YM2608_save_state(F2608, device); in ym2608_init()
3629 return F2608; in ym2608_init()
3635 YM2608 *F2608 = (YM2608 *)chip; in ym2608_shutdown() local
3637 free(F2608->deltaT.memory); F2608->deltaT.memory = NULL; in ym2608_shutdown()
3640 free(F2608); in ym2608_shutdown()
3647 YM2608 *F2608 = (YM2608 *)chip; in ym2608_reset_chip() local
3648 FM_OPN *OPN = &F2608->OPN; in ym2608_reset_chip()
3649 YM_DELTAT *DELTAT = &F2608->deltaT; in ym2608_reset_chip()
3653 F2608->deltaT.freqbase = OPN->ST.freqbase; in ym2608_reset_chip()
3662 YM2608IRQMaskWrite(OPN, F2608, 0x1f ); /* default value for D4-D0 is 1 */ in ym2608_reset_chip()
3665 …YM2608IRQFlagWrite(OPN, F2608, 0x1c ); /* default: enable timer A and B, disable EOS, BRDY and ZER… in ym2608_reset_chip()
3674 reset_channels( &OPN->ST , F2608->CH , 6 ); in ym2608_reset_chip()
3692F2608->adpcm[i].step = (UINT32)((float)(1<<ADPCM_SHIFT)*((float)F2608->OPN.ST.freqbase)/3.0); in ym2608_reset_chip()
3694F2608->adpcm[i].step = (UINT32)((float)(1<<ADPCM_SHIFT)*((float)F2608->OPN.ST.freqbase)/6.0); in ym2608_reset_chip()
3696 F2608->adpcm[i].start = YM2608_ADPCM_ROM_addr[i*2]; in ym2608_reset_chip()
3697 F2608->adpcm[i].end = YM2608_ADPCM_ROM_addr[i*2+1]; in ym2608_reset_chip()
3699 F2608->adpcm[i].now_addr = 0; in ym2608_reset_chip()
3700 F2608->adpcm[i].now_step = 0; in ym2608_reset_chip()
3702 F2608->adpcm[i].vol_mul = 0; in ym2608_reset_chip()
3703 F2608->adpcm[i].pan = &OPN->out_adpcm[OUTD_CENTER]; /* default center */ in ym2608_reset_chip()
3704 F2608->adpcm[i].flagMask = 0; in ym2608_reset_chip()
3705 F2608->adpcm[i].flag = 0; in ym2608_reset_chip()
3706 F2608->adpcm[i].adpcm_acc = 0; in ym2608_reset_chip()
3707 F2608->adpcm[i].adpcm_step= 0; in ym2608_reset_chip()
3708 F2608->adpcm[i].adpcm_out = 0; in ym2608_reset_chip()
3710 F2608->adpcmTL = 0x3f; in ym2608_reset_chip()
3712 F2608->adpcm_arrivedEndAddress = 0; /* not used */ in ym2608_reset_chip()
3728 YM2608 *F2608 = (YM2608 *)chip; in ym2608_write() local
3729 FM_OPN *OPN = &F2608->OPN; in ym2608_write()
3739 F2608->addr_A1 = 0; in ym2608_write()
3748 F2608->deltaT.freqbase = OPN->ST.freqbase; in ym2608_write()
3753 if (F2608->addr_A1 != 0) in ym2608_write()
3757 F2608->REGS[addr] = v; in ym2608_write()
3766 FM_ADPCMAWrite(F2608,addr-0x10,v); in ym2608_write()
3772 YM2608IRQMaskWrite(OPN, F2608, v); in ym2608_write()
3787 F2608->addr_A1 = 1; in ym2608_write()
3791 if (F2608->addr_A1 != 1) in ym2608_write()
3795 F2608->REGS[addr | 0x100] = v; in ym2608_write()
3809 YM_DELTAT_ADPCM_Write(&F2608->deltaT,addr,v); in ym2608_write()
3815 YM2608IRQFlagWrite(OPN, F2608, v); in ym2608_write()
3827 YM2608 *F2608 = (YM2608 *)chip; in ym2608_read() local
3828 int addr = F2608->OPN.ST.address; in ym2608_read()
3835 ret = FM_STATUS_FLAG(&F2608->OPN.ST) & 0x83; in ym2608_read()
3839 if( addr < 16 ) ret = (*F2608->OPN.ST.SSG->read)(F2608->OPN.ST.param); in ym2608_read()
3845 …ret = (FM_STATUS_FLAG(&F2608->OPN.ST) & (F2608->flagmask|0x80)) | ((F2608->deltaT.PCM_BSY & 1)<<5)… in ym2608_read()
3851 ret = YM_DELTAT_ADPCM_Read(&F2608->deltaT); in ym2608_read()
3870 YM2608 *F2608 = (YM2608 *)chip; in ym2608_timer_over() local
3877 YM_DELTAT_BRDY_callback( &F2608->deltaT ); in ym2608_timer_over()
3883 TimerBOver( &(F2608->OPN.ST) ); in ym2608_timer_over()
3888 ym2608_update_req(F2608->OPN.ST.param); in ym2608_timer_over()
3890 TimerAOver( &(F2608->OPN.ST) ); in ym2608_timer_over()
3892 if( F2608->OPN.ST.mode & 0x80 ) in ym2608_timer_over()
3894 CSMKeyControll( F2608->OPN.type, &(F2608->CH[2]) ); in ym2608_timer_over()
3902 return F2608->OPN.ST.irq; in ym2608_timer_over()
3908 YM2608 *F2608 = (YM2608 *)chip; in ym2608_write_pcmrom() local
3916 if (F2608->deltaT.memory_size != ROMSize) in ym2608_write_pcmrom()
3918 F2608->deltaT.memory = (UINT8*)realloc(F2608->deltaT.memory, ROMSize); in ym2608_write_pcmrom()
3919 F2608->deltaT.memory_size = ROMSize; in ym2608_write_pcmrom()
3920 memset(F2608->deltaT.memory, 0xFF, ROMSize); in ym2608_write_pcmrom()
3921 YM_DELTAT_calc_mem_mask(&F2608->deltaT); in ym2608_write_pcmrom()
3928 memcpy(F2608->deltaT.memory + DataStart, ROMData, DataLength); in ym2608_write_pcmrom()
3937 YM2608 *F2608 = (YM2608 *)chip; in ym2608_set_mutemask() local
3941 F2608->CH[CurChn].Muted = (MuteMask >> CurChn) & 0x01; in ym2608_set_mutemask()
3943 F2608->adpcm[CurChn].Muted = (MuteMask >> (CurChn + 6)) & 0x01; in ym2608_set_mutemask()
3944 F2608->MuteDeltaT = (MuteMask >> 12) & 0x01; in ym2608_set_mutemask()