Subj : DOS EMM calls in a TSR To : ALL From : Jcurtis Date : Tue Jun 24 2025 20:27:48 By trial and error I discovered EMM calls enable interrupts. This can cause havoc in a TSR where you need interrupts disabled. Finding these bugs is not easy. My TSR enables interrupts part of the time, so I do EMM calls there. Here's an example with comments. void next_irq (void) { int x; next: x = next (); /* service IRQs with */ enable (); /* interrupts enabled */ # ifndef noemm /* EMM call enables interrupts, do */ emm_get_page_map (e1); /* not do it before enable () above */ # endif if (x) { service_com_irqs (x); } else service_ticktock (); # ifndef noemm emm_set_page_map (e1); # endif disable (); if (x) mask_irq (NO, x); if (iq[iz]) goto next; } * SLMR 2.1a * * SLMR 2.1a * --- þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net .