' forgive the sloppy programming as it was a rush job library "gemdos","xbios","bios" defint a-z dim shared blitter(190) blit&=varptr(blitter(0)) bload "b:\blitter\basic\blit.prg",blit& dim shared pic2(16100) dim shared pic3(16100) pict2&=varptr(pic2(0)) pict3&=varptr(pic3(0)) bload "b:\blitter\basic\pattern2.neo",pict2& bload "b:\blitter\basic\pattern3.neo",pict3& ' okay now were ready to change to low rez screen 0 blitit&=blit&+28 two&=pict2&+128 tre&=pict3&+128 ' these now point to the actual start of the pictures scrn&=fnphysbase& ' to call the blitter use : ' call loc blitit&,from,to,x1,y1,x2,y2,w,h,l,p ' where : ' blitit& = the address of the machine code ' from = the address of the screen of data ' to = the address of the destination screen ' x1,y1 = the top-left co-ordinates of the block to blit ' x2,y2 = the top-left co-ordinates of the destination area ' w,h = the width and height of the block to blit ' l = the logic operator to use (0-15) (3=copy) ' p = the number of bitplanes to blit (1-4) ' first test call loc blitit&,tre&,two&+2,0,0,1,1,80,48,3,1 call loc blitit&,two&,scrn&+2,0,0,0,0,319,199,3,1 a$="" x=0:y=0:dx=2:dy=2 while a$="" a$=inkey$ x=x+dx:y=y+dy if x=200 or x=0 then dx=-dx if y=140 or y=0 then dy=-dy call loc blitit&,two&+2,scrn&,0,0,x,y,80,50,3,1 vsync wend screen 1