From: "Wynand Van Staden" To: Date: Sat, 20 Nov 1999 16:52:44 +0000 (GMT) Organization: RAU Student Server X-Mailer: ObsidianSystems-OcsEmail1-0-30 brewed at www.obsidian.co.za Message-ID: <9431167645339-2018525339s9800973@student.rau.ac.za> Subject: real vs protected mode interrupts. Reply-To: djgpp AT delorie DOT com ok, well same old questions regarding the CDROM. i've seen some posts here lately, but none of them ask the questions I need answered. I've gotten past the part of passing the segment:offset pair to __dpmi in ES:BX, no problem. (did this with VESA 2 routines....) now, there still remains one thing that bugs me. in the CDROM, mscdex calls what you need to do is pass a control structure to ES:DI. Ok, easily done with __tb >> 4 thingy(you know what i mean), what now remains a problem is that in the control block you need to pass a pointer to another control block ie :: struct blah { short length; //length of control block . . . unsigned long *ptr_to_control_block; }; struct control_block_2 { ... }; so somewhere you need blah.ptr_to_control_block to point to control_block_2. and then you make the real mode call to mscdex using "blah". problem is control block 2 holds information that the real mode call needs. so what i'd like to know if anybody can help me is how would you go about doing this?? if i'm being unclear i apologise. and if this has been answered somewhere, i wasn't aware of it. (perhaps i should go look in ID's quake source to see how they managed it?) thanks in advance.