From: "Tony Friery" Newsgroups: comp.os.msdos.djgpp Subject: Q: Creating Allegro Bitmap from Binary Data Date: Thu, 30 Sep 1999 18:17:24 +0100 Lines: 37 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 NNTP-Posting-Host: warp7-32.enta-net.co.uk Message-ID: <37f39fd3.0@energise.enta.net> X-Trace: 30 Sep 1999 18:37:23 -0100, warp7-32.enta-net.co.uk To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi there, I am currently writing an Emulator for the (now near-vintage) Sharp MZ-80B and have a question regarding the Screen-Generator Code. The Graphical Resolution is 2 simultaneous mono-planes of 320x200, and text normally 40x25 using 8x8 font (Conveniently :) ) There is also an 80-column mode which means an effective resolution of 640x400 which is what I have chosen as the graphics mode. At the moment, I use 5 bitmaps (eg FONTRAM, TEXTRAM, VID1RAM, VID2RAM, TEMPRAM) in various resolutions and use a combination of stretch_blit, blit and masked_blit to get them onto the screen. With the text, this is normally OK (I pre-stretch into a temporary bitmap beforehand as it will always be y*2 stretched anyway in order to save overhead) but I need an efficient way of writing an 8-bit value into Video Ram, without the following: void FillBitmap(BITMAP (sbm, int begx, int begy, byte Data) { int xl, colval; /* xl is the X-Loop Variable */ for (xl=0; xl<8; xl++) { colval=2*((Data>>xl) &1); putpixel(sbm, begx+(7-xl), begy, colval); } } Does this more efficient method exist? If so, can someone please point me in the right direction :) TIA Tony Friery