Lines Matching refs:F2608

3162 INLINE void YM2608IRQFlagWrite(FM_OPN *OPN, YM2608 *F2608, int v)  in YM2608IRQFlagWrite()  argument
3170 F2608->flagmask = (~(v&0x1f)); in YM2608IRQFlagWrite()
3171 FM_IRQMASK_SET(&OPN->ST, (F2608->irqmask & F2608->flagmask) ); in YM2608IRQFlagWrite()
3176 INLINE void YM2608IRQMaskWrite(FM_OPN *OPN, YM2608 *F2608, int v) in YM2608IRQMaskWrite() argument
3187 F2608->irqmask = v&0x1f; in YM2608IRQMaskWrite()
3188 FM_IRQMASK_SET(&OPN->ST, (F2608->irqmask & F2608->flagmask) ); in YM2608IRQMaskWrite()
3194 YM2608 *F2608 = chip; in YM2608UpdateOne() local
3195 FM_OPN *OPN = &F2608->OPN; in YM2608UpdateOne()
3196 YM_DELTAT *DELTAT = &F2608->deltaT; in YM2608UpdateOne()
3205 cch[0] = &F2608->CH[0]; in YM2608UpdateOne()
3206 cch[1] = &F2608->CH[1]; in YM2608UpdateOne()
3207 cch[2] = &F2608->CH[2]; in YM2608UpdateOne()
3208 cch[3] = &F2608->CH[3]; in YM2608UpdateOne()
3209 cch[4] = &F2608->CH[4]; in YM2608UpdateOne()
3210 cch[5] = &F2608->CH[5]; in YM2608UpdateOne()
3212 pcmbufA = F2608->pcmbuf; in YM2608UpdateOne()
3213 pcmsizeA = F2608->pcm_size; in YM2608UpdateOne()
3281 if( F2608->adpcm[j].flag ) in YM2608UpdateOne()
3282 ADPCMA_calc_chan( F2608, &F2608->adpcm[j]); in YM2608UpdateOne()
3336 YM2608 *F2608 = (YM2608 *)chip; in YM2608Postload() local
3340 OPNPrescaler_w(&F2608->OPN,1,2); in YM2608Postload()
3341 F2608->deltaT.freqbase = F2608->OPN.ST.freqbase; in YM2608Postload()
3343 YM2608IRQMaskWrite(&F2608->OPN, F2608, F2608->REGS[0x29]); in YM2608Postload()
3347 (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.param,0,r); in YM2608Postload()
3348 (*F2608->OPN.ST.SSG->write)(F2608->OPN.ST.param,1,F2608->REGS[r]); in YM2608Postload()
3356 OPNWriteReg(&F2608->OPN,r,F2608->REGS[r]); in YM2608Postload()
3357 OPNWriteReg(&F2608->OPN,r|0x100,F2608->REGS[r|0x100]); in YM2608Postload()
3363 OPNWriteReg(&F2608->OPN,r,F2608->REGS[r]); in YM2608Postload()
3364 OPNWriteReg(&F2608->OPN,r|0x100,F2608->REGS[r|0x100]); in YM2608Postload()
3369 FM_ADPCMAWrite(F2608,1,F2608->REGS[0x111]); in YM2608Postload()
3371 FM_ADPCMAWrite(F2608,r,F2608->REGS[r+0x110]); in YM2608Postload()
3373 YM_DELTAT_postload(&F2608->deltaT , &F2608->REGS[0x100] ); in YM2608Postload()
3377 static void YM2608_save_state(YM2608 *F2608, int index) in YM2608_save_state() argument
3381 state_save_register_item_array(statename, index, F2608->REGS); in YM2608_save_state()
3382 FMsave_state_st(statename,index,&F2608->OPN.ST); in YM2608_save_state()
3383 FMsave_state_channel(statename,index,F2608->CH,6); in YM2608_save_state()
3385 state_save_register_item_array(statename, index, F2608->OPN.SL3.fc); in YM2608_save_state()
3386 state_save_register_item(statename, index, F2608->OPN.SL3.fn_h); in YM2608_save_state()
3387 state_save_register_item_array(statename, index, F2608->OPN.SL3.kcode); in YM2608_save_state()
3389 state_save_register_item(statename, index, F2608->addr_A1); in YM2608_save_state()
3391 FMsave_state_adpcma(statename,index,F2608->adpcm); in YM2608_save_state()
3393 YM_DELTAT_savestate(statename,index,&F2608->deltaT); in YM2608_save_state()
3399 YM2608 *F2608 = chip; in YM2608_deltat_status_set() local
3400 FM_STATUS_SET(&(F2608->OPN.ST), changebits); in YM2608_deltat_status_set()
3404 YM2608 *F2608 = chip; in YM2608_deltat_status_reset() local
3405 FM_STATUS_RESET(&(F2608->OPN.ST), changebits); in YM2608_deltat_status_reset()
3412 YM2608 *F2608; in YM2608Init() local
3415 if( (F2608 = (YM2608 *)malloc(sizeof(YM2608)))==NULL) in YM2608Init()
3418 memset(F2608,0,sizeof(YM2608)); in YM2608Init()
3422 free( F2608 ); in YM2608Init()
3426 F2608->OPN.ST.param = param; in YM2608Init()
3427 F2608->OPN.type = TYPE_YM2608; in YM2608Init()
3428 F2608->OPN.P_CH = F2608->CH; in YM2608Init()
3429 F2608->OPN.ST.clock = clock; in YM2608Init()
3430 F2608->OPN.ST.rate = rate; in YM2608Init()
3433 F2608->OPN.ST.Timer_Handler = TimerHandler; in YM2608Init()
3434 F2608->OPN.ST.IRQ_Handler = IRQHandler; in YM2608Init()
3435 F2608->OPN.ST.SSG = ssg; in YM2608Init()
3438 F2608->deltaT.memory = (UINT8 *)pcmrom; in YM2608Init()
3439 F2608->deltaT.memory_size = pcmsize; in YM2608Init()
3444 F2608->deltaT.status_set_handler = YM2608_deltat_status_set; in YM2608Init()
3445 F2608->deltaT.status_reset_handler = YM2608_deltat_status_reset; in YM2608Init()
3446 F2608->deltaT.status_change_which_chip = F2608; in YM2608Init()
3447 F2608->deltaT.status_change_EOS_bit = 0x04; /* status flag: set bit2 on End Of Sample */ in YM2608Init()
3448 F2608->deltaT.status_change_BRDY_bit = 0x08; /* status flag: set bit3 on BRDY */ in YM2608Init()
3449F2608->deltaT.status_change_ZERO_bit = 0x10; /* status flag: set bit4 if silence continues for mor… in YM2608Init()
3452 F2608->pcmbuf = YM2608_ADPCM_ROM; in YM2608Init()
3453 F2608->pcm_size = 0x2000; in YM2608Init()
3455 YM2608ResetChip(F2608); in YM2608Init()
3460 YM2608_save_state(F2608, index); in YM2608Init()
3462 return F2608; in YM2608Init()
3468 YM2608 *F2608 = chip; in YM2608Shutdown() local
3471 free(F2608); in YM2608Shutdown()
3478 YM2608 *F2608 = chip; in YM2608ResetChip() local
3479 FM_OPN *OPN = &F2608->OPN; in YM2608ResetChip()
3480 YM_DELTAT *DELTAT = &F2608->deltaT; in YM2608ResetChip()
3484 F2608->deltaT.freqbase = OPN->ST.freqbase; in YM2608ResetChip()
3493 YM2608IRQMaskWrite(OPN, F2608, 0x1f ); /* default value for D4-D0 is 1 */ in YM2608ResetChip()
3496 …YM2608IRQFlagWrite(OPN, F2608, 0x1c ); /* default: enable timer A and B, disable EOS, BRDY and ZER… in YM2608ResetChip()
3505 reset_channels( &OPN->ST , F2608->CH , 6 ); in YM2608ResetChip()
3523F2608->adpcm[i].step = (UINT32)((float)(1<<ADPCM_SHIFT)*((float)F2608->OPN.ST.freqbase)/3.0); in YM2608ResetChip()
3525F2608->adpcm[i].step = (UINT32)((float)(1<<ADPCM_SHIFT)*((float)F2608->OPN.ST.freqbase)/6.0); in YM2608ResetChip()
3527 F2608->adpcm[i].start = YM2608_ADPCM_ROM_addr[i*2]; in YM2608ResetChip()
3528 F2608->adpcm[i].end = YM2608_ADPCM_ROM_addr[i*2+1]; in YM2608ResetChip()
3530 F2608->adpcm[i].now_addr = 0; in YM2608ResetChip()
3531 F2608->adpcm[i].now_step = 0; in YM2608ResetChip()
3533 F2608->adpcm[i].vol_mul = 0; in YM2608ResetChip()
3534 F2608->adpcm[i].pan = &out_adpcm[OUTD_CENTER]; /* default center */ in YM2608ResetChip()
3535 F2608->adpcm[i].flagMask = 0; in YM2608ResetChip()
3536 F2608->adpcm[i].flag = 0; in YM2608ResetChip()
3537 F2608->adpcm[i].adpcm_acc = 0; in YM2608ResetChip()
3538 F2608->adpcm[i].adpcm_step= 0; in YM2608ResetChip()
3539 F2608->adpcm[i].adpcm_out = 0; in YM2608ResetChip()
3541 F2608->adpcmTL = 0x3f; in YM2608ResetChip()
3543 F2608->adpcm_arrivedEndAddress = 0; /* not used */ in YM2608ResetChip()
3559 YM2608 *F2608 = chip; in YM2608Write() local
3560 FM_OPN *OPN = &F2608->OPN; in YM2608Write()
3570 F2608->addr_A1 = 0; in YM2608Write()
3578 F2608->deltaT.freqbase = OPN->ST.freqbase; in YM2608Write()
3583 if (F2608->addr_A1 != 0) in YM2608Write()
3587 F2608->REGS[addr] = v; in YM2608Write()
3596 FM_ADPCMAWrite(F2608,addr-0x10,v); in YM2608Write()
3602 YM2608IRQMaskWrite(OPN, F2608, v); in YM2608Write()
3617 F2608->addr_A1 = 1; in YM2608Write()
3621 if (F2608->addr_A1 != 1) in YM2608Write()
3625 F2608->REGS[addr | 0x100] = v; in YM2608Write()
3637 YM_DELTAT_ADPCM_Write(&F2608->deltaT,addr,v); in YM2608Write()
3643 YM2608IRQFlagWrite(OPN, F2608, v); in YM2608Write()
3655 YM2608 *F2608 = chip; in YM2608Read() local
3656 int addr = F2608->OPN.ST.address; in YM2608Read()
3662 ret = FM_STATUS_FLAG(&F2608->OPN.ST) & 0x83; in YM2608Read()
3666 if( addr < 16 ) ret = (*F2608->OPN.ST.SSG->read)(F2608->OPN.ST.param); in YM2608Read()
3672 …ret = (FM_STATUS_FLAG(&F2608->OPN.ST) & (F2608->flagmask|0x80)) | ((F2608->deltaT.PCM_BSY & 1)<<5)… in YM2608Read()
3678 ret = YM_DELTAT_ADPCM_Read(&F2608->deltaT); in YM2608Read()
3695 YM2608 *F2608 = chip; in YM2608TimerOver() local
3702 YM_DELTAT_BRDY_callback( &F2608->deltaT ); in YM2608TimerOver()
3708 TimerBOver( &(F2608->OPN.ST) ); in YM2608TimerOver()
3713 YM2608UpdateReq(F2608->OPN.ST.param); in YM2608TimerOver()
3715 TimerAOver( &(F2608->OPN.ST) ); in YM2608TimerOver()
3717 if( F2608->OPN.ST.mode & 0x80 ) in YM2608TimerOver()
3719 CSMKeyControll( &(F2608->CH[2]) ); in YM2608TimerOver()
3727 return F2608->OPN.ST.irq; in YM2608TimerOver()