/* ------------------------------------------------------------------------ System : Manx Aztec C65 Version 3.2b MS-DOS cross-development environment Platform : Apple IIe 128K PRODOS 8 Program : emsput.c Description : G2 Library Routine Written by : Bill Buckels Revision Date: July 7, 1991 Licence : You may use this code for whatever you wish as long as you agree that Bill Buckels has no warranty or liability obligations whatsoever from said use. ------------------------------------------------------------------------ */ #define PUT 0 /* action verbs for putimage */ #define GET 1 /* expand as required */ #define P_STIX 2 #define P_BLACK 3 #define P_WHITE 4 #define P_AND 5 #define P_XOR 6 /* emsputimage() */ /* handles screen manipulation of image fragments */ /* both gets and puts and uses ems memory for the IO buffer */ /* for screen puts other than memory moves a buffer is used */ /* since a full screen stored in our .BOT format has a file size of 7680 bytes there is room in the upper ram bank to store 6 full screens (6x7680=46080 bytes) */ extern unsigned HB[]; emsputimage(emsarraybase,width,height,xorg,yorg,action) unsigned emsarraybase; int width,height,xorg,yorg,action; { int ctr; char *ptr,*ptr2; int temp; /* the ems buffer starts above the 2nd page of text screen */ /* in auxiliary memory */ unsigned hitemp=emsarraybase+0x0C00; int bos=yorg+height; char tempbyte='\x80'; char arrayname[40] ; if(action==P_WHITE)tempbyte='\xff'; while(yorg