/*V25 COM1 initialization*/ void V25_serial_init(void) { pokeregb(V25_SCC1,0x2); #ifdef BR9600 pokeregb(V25_BRG1,104); /*baudrate decision 9600*/ #endif #ifdef BR38400 pokeregb(V25_BRG1,26); /*baudrate decision 38400*/ #endif pokeregb(V25_SCM1,0xC9); /* 1start+8data+1stop, mode set */ } void interrupt (*old_tmr_isr)(); void interrupt (*old_sio1r_isr)(); void interrupt (*old_sio1t_isr)(); void interrupt (*old_sio1e_isr)(); BYTE old_sric1, old_stic1, old_seic1, old_tmic0; void init_regs(void) { /* save old ISRs */ old_tmr_isr = getvect(INTVEC_TMR); old_sio1e_isr = getvect(INTVEC_SIO1_E); old_sio1r_isr = getvect(INTVEC_SIO1_R); old_sio1t_isr = getvect(INTVEC_SIO1_T); /* set new ISRs */ setvect(INTVEC_TMR,new_tmr_isr); setvect(INTVEC_SIO1_R,new_sio1r_isr); setvect(INTVEC_SIO1_E,new_sio1e_isr); setvect(INTVEC_SIO1_T,new_sio1t_isr); /* save old SRIC1 and set vector interrupt of SRIC1 */ old_sric1 = peekregb(V25_SRIC1); pokeregb(V25_SRIC1,old_sric1 & 0x0F); /* set vector INT */ /* save old STIC1 and SEIC1 */ old_stic1 = peekregb(V25_STIC1); old_seic1 = peekregb(V25_SEIC1); V25_serial_init(); pokeregb(V25_SEIC1,peekregb(V25_SEIC1) & ~0x40); /* interrupt enable */ pokeregb(V25_STIC1,peekregb(V25_STIC1) & ~0x40); /* interrupt enable */ pokeregb(V25_SRIC1,peekregb(V25_SRIC1) & ~0x40); /* interrupt enable */ }