hjespers@attcan.UUCP (Hans Jespersen) (11/21/89)
> This is a set of bitblit routines that can be used with the "crabs" > code I posted about a week ago. > ... > Besides waiting for the MGR and/or X ports, it would be nice if > someone wrote a little compatibility routine that use the same kind of > arguments as ioctl(WIOCRASTOP) but called this instead if there is no > window involved. That would make porting code pretty easy. (I was > too lazy to do this for "crabs", but I wouldn't be too lazy to grab a > copy if someone wrote it and posted it.) The library generated by this source may be a bitblit library but it doesn't appear to be an implementation of the AT&T DMD routines that one would use on a genuine "blit" (ie. blit/5620/630/730 ). It would be a pain to have to take existing 630 programs and port them to the 3B1 using these routines. Not that it couldn't be done but you would have to restucture all the bitblt() calls (used on a real blit) to bit_blit() calls (used in this library). Even a simple #define won't do it since the Bitmap struct itself is different than in the real blit library (as defined in dmd.h). Just to fill everyone in, I have been writting a set of "blit" routines for the 3B1 that do correspond parameter for parameter to the real "blit" routines. This includes bitblt(), segment(), rectf(), circle(), ellipse(), point() in both window and scaled coordinates (ie. jroutines ). Once I finish all the routines, one would be able to take most "blit" sources designed for 'dmdcc' and compile them to run on the 3B1 console. Of course the exception being programs designed to run in 'layers'. I have tested a couple of programs already ( including a version of 'moire' written for the 630 ) and the damn thing actually works. Blew my mind the first time I saw it compile and run!! Unfortunately though direct video memory addressing is a bitch on the 3B1 (requiring a hardware modification or some serious hacking). As a result, all bitblt routines write to a psuedo screen Bitmap and some programs must be slightly modified to include periodic refreshing of the actual screen ( dmdrefresh() - using wrastop() ). This makes things slow. Once I get a vidpal and/or access to a modified machine it will be really easy to make it work with real direct video memory addressing ( matter of adding 2 or three lines of code and recompiling with -DVIDPAL ). When all is finished I will definitely post the source (to the public domain) in unix-pc.sources. -- Hans Jespersen UUCP: {uunet | att}!attcan!hjespers AT&T Canada Inc. Toronto, Ontario