From: "Hammy" Newsgroups: comp.os.msdos.djgpp Subject: Memory in DJGPP Date: Sat, 16 Oct 1999 15:54:14 +0100 Organization: Customer of Planet Online Lines: 38 Message-ID: <7ua3p5$nlt$1@news8.svr.pol.co.uk> NNTP-Posting-Host: modem-9.silicon.dialup.pol.co.uk X-Trace: news8.svr.pol.co.uk 940085861 24253 62.136.6.137 (16 Oct 1999 14:57:41 GMT) NNTP-Posting-Date: 16 Oct 1999 14:57:41 GMT X-Complaints-To: abuse AT theplanet DOT net X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2314.1300 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com okay, i was looking in the hlp on RHIDE for the memset, and other mem functions. Apparently some only allow int size moves and stuff? I thought you could move anything int he range of 32bits? Also, what does the __tb mean? i think it stands for a transfer buffer? but im nto sure what that actually means, or when to use such a thing. I noticed it being used in retreiving the VESA mode info. You are supposed to called a interupt and the data is sent to es:di and u should set a stuct to this. heres the code: ModeInfoBlock *get_mode_info(int mode) { static ModeInfoBlock info; __dpmi_regs r; r.x.ax = 0x4F01; r.x.cx = mode; r.x.es = __tb / 16; r.x.di = 0; __dpmi_int(0x10, &r); if(r.h.ah) return 0; dosmemget(__tb, sizeof(ModeInfoBlock), &info); return &info; } why do they divide by 16? I know I have sent another mesaage about this but i didnt ask this int he same way: whne you have the physical address of the videobuffer, what can you do with it?