Date: Thu, 19 Jul 2001 15:36:27 -0400 Message-Id: <200107191936.PAA22352@envy.delorie.com> X-Authentication-Warning: envy.delorie.com: dj set sender to dj AT envy DOT delorie DOT com using -f From: DJ Delorie To: Sterten AT aol DOT com CC: eliz AT is DOT elta DOT co DOT il, djgpp AT delorie DOT com In-reply-to: (Sterten@aol.com) Subject: Re: pokeb peekb References: Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > #include > int main() { // gcc video3.c -o video3.exe > _farpokeb(_dos_ds,0xb8000+12*160+40*2,1);} > > compiles and runs fine. (gcc2.03) If you run it on my old laptop it will fail, because my laptop has a monochrome screen (0xb0000). It will fail on my newer laptop because the screen is not 80x25 cells. It will fail if the center cell has a black-on-black attribute already (or any other same-on-same attribute). Just because it happens to run on your machine does not mean you have learned a proper and useful technique. If your purpose is to do graphics programming, then you are learning the wrong techniques anyway. You want to learn about the _farns* functions and nearptrs, or use Allegro (which hides the hardware layer, allowing you more than 640x480 without having to know what kind of card you're using) or GRX. *Especially* if you're teaching people how to program! Give them a high-level library like Allegro and they'll see better results faster, which will encourage them to continue. See also http://www.delorie.com/djgpp/doc/ug/ which has a chapter on graphics programming for DJGPP. As for general C, you should get in the habit of adding spaces and sparsely populated lines (appropriately, of course) to make your program more readable (DJGPP's indent tool can do this for you). This is especially important if you want someone else to read your code to help you solve a problem. Before: int main() { // gcc video3.c -o video3.exe _farpokeb(_dos_ds,0xb8000+12*160+40*2,1);} After: int main () { // gcc video3.c -o video3.exe _farpokeb (_dos_ds, 0xb8000 + 12 * 160 + 40 * 2, 1); } You should get in the habit of returning a valid exit code, either by calling exit() with a suitable value (zero for success, nonzero for failure) or returning a suitable value from main (rather than just falling off the end as you do).