MFP2
if (badbaddr(&MFP2->mf_gpip)) {
MFP2->mf_iera = MFP2->mf_ierb = 0;
MFP2->mf_imra = MFP2->mf_imrb = 0;
MFP2->mf_aer = 0x80;
MFP2->mf_vr = 0x50;
MFP2->mf_aer |= 0x80; /* SCSI IRQ goes HIGH!!!!! */
MFP2->mf_ierb |= IB_SCDM;
MFP2->mf_iprb = (uint8_t)~IB_SCDM;
MFP2->mf_imrb |= IB_SCDM;
MFP2->mf_iera |= IA_SCSI; /* SCSI-5380 interrupts */
MFP2->mf_ipra = (uint8_t)~IA_SCSI;
MFP2->mf_imra |= IA_SCSI;
single_inst_bset_b(MFP2->mf_imrb, IB_SCDM);
single_inst_bset_b(MFP2->mf_imra, IA_SCSI);
single_inst_bclr_b(MFP2->mf_imrb, IB_SCDM);
single_inst_bclr_b(MFP2->mf_imra, IA_SCSI);
MFP2->mf_iprb = (uint8_t)~IB_SCDM;
MFP2->mf_ipra = (uint8_t)~IA_SCSI;
single_inst_bclr_b(MFP2->mf_imra, IA_SCSI);
single_inst_bset_b(MFP2->mf_imra,
single_inst_bset_b(MFP2->mf_imra, IA_SCSI);
single_inst_bset_b(MFP2->mf_imra, IA_SCSI);
#define fdc_ienable() MFP2->mf_ierb |= IB_DCHG;
MFP2->mf_iprb = (u_int8_t)~IB_DCHG;
MFP2->mf_imrb |= IB_DCHG;
MFP2->mf_aer |= 0x10; /* fdc int low->high */
MFP2->mf_ierb &= ~IB_DCHG;
int cr = MFP2->mf_tcdcr & 7;
MFP2->mf_tcdcr = cr; /* stop timer C */
MFP2->mf_tcdr = 1; /* counter 1 */
MFP2->mf_tcdcr = cr; /* start timer C */
MFP2->mf_imrb &= ~iinfo_p->imask;
MFP2->mf_imrb |= iinfo_p->imask;
MFP2->mf_imrb |= iinfo_p->imask;
MFP2->mf_ierb |= iinfo_p->imask;
MFP2->mf_imrb &= ~iinfo->imask;
MFP2->mf_ierb &= ~iinfo->imask;
MFP2->mf_aer &= ~(0x27); /* PCI interrupts: HIGH -> LOW */