# HG changeset patch # User Matti Hamalainen # Date 1274145944 -10800 # Node ID acb5694e93d9f414be4ed4753396982b1ae072d1 Initial import. diff -r 000000000000 -r acb5694e93d9 COMPILING --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/COMPILING Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,18 @@ +Quick and dirty guide to make it: + +- Just type make and follow the instructions +- Or just do make + +The available systypes are: unix, linux, hpux, cygwin, win32 + +The experience on previous versions of pwplib also suggests succesful +compilation on the following platforms: + - Solaris/SPARC (without sound support; also with native compiler) + - AIX/PowerPC (without sound support; also with native compiler) + +We hope to support even more platforms (such as msdos, palmos, +macos and msx) in the future. + +We will release a final version sometimes after the party (Proxy 2001), +hopefully with tested+easier compilation. + diff -r 000000000000 -r acb5694e93d9 COPYING --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/COPYING Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,339 @@ + PWP GENERAL PUBLIC LICENSE + Version 2, June 2001 + + Copyright (C) 2001, 2001 Elite Warez Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, Alpha Centauri + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most Warez are designed to take away your +Elitedom to share and change it. By contrast, the PWP General Public +License is intended to guarantee your Elitedom to share and change Elite +Warez--to make sure the Warez is Elite for all its users. This +General Public License applies to most of the Elite Warez +Foundation's Warez and to any other program whose authors commit to +using it. (Some other Elite Warez Foundation Warez is covered by +the PWP Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of Elite Warez, we are referring to Elitedom, not +price. Our General Public Licenses are designed to make sure that you +have the Elitedom to distribute copies of Elite Warez (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the Warez or use pieces of it +in new Elite programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the Warez, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the Warez, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the Warez. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this Elite +Warez. If the Warez is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any Elite program is threatened constantly by Warez +patents. We wish to avoid the danger that redistributors of a Elite +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's Elite use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + PWP GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for Warez interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for Warez interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-Elite redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the Elite Warez distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of Warez distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute Warez through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Elite Warez Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Elite +Warez Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Elite Warez +Foundation. + + 10. If you wish to incorporate parts of the Program into other Elite +programs whose distribution conditions are different, write to the author +to ask for permission. For Warez which is copyrighted by the Elite +Warez Foundation, write to the Elite Warez Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the Elite status of all derivatives of our Elite Warez and +of promoting the sharing and reuse of Warez generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED Elite OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +Elite Warez which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is Elite Warez; you can redistribute it and/or modify + it under the terms of the PWP General Public License as published by + the Elite Warez Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + PWP General Public License for more details. + + You should have received a copy of the PWP General Public License + along with this program; if not, write to the Elite Warez + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, Alpha Centauri. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Fucking Shit version 69, Copyright (C) 19yy name of author + Fucking Shit comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is Elite Warez, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Fucking Shit' (which makes passes at compilers) written by James Hacker. + + , 1 April 2001 + viznut, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the PWP Library General +Public License instead of this License. diff -r 000000000000 -r acb5694e93d9 Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,46 @@ +all: pwplib.a + cd peluce; make + cd nykyaeka; make + cd oldchsool; make + +./configure: + $(CC) configure.c -o configure + +pwplib/Makefile: ./configure + ./configure + exit 123 + +pwplib.a: pwplib/Makefile + cd pwplib; make + +clean: + rm -f *~ ./configure ./configure.exe + cd pwplib; make clean; rm -f Makefile + cd peluce; make clean; rm -f Makefile + cd nykyaeka; make clean; rm -f Makefile + cd oldchsool; make clean; rm -f Makefile + +linux: ./configure + ./configure linux + make all + +sdl: ./configure + ./configure sdl + make all + +unix: ./configure + ./configure unix + make all + +hpux: ./configure + ./configure hpux + make all + +cygwin: ./configure + ./configure cygwin + make all + +win32: ./configure + ./configure win32 + make all + diff -r 000000000000 -r acb5694e93d9 configure.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configure.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,184 @@ +#include +#include + +/* + * WE BE ELEET ENOUGH NOT TO HASSLE WITH PHUKKEN + * BOURNE SHELL SCRIPTAHS + */ + +const char*pwplogo= +"\033[2J\033[H\n" +" \033[36;46mMMmmmmmmMM\033[0m\n" +" \033[36;46mMM\033[0m\n" +" \033[31;41mxxxxxxxxxxxx\033[0m\n" +" \033[31;41mxxxxxxxxxxxxxxxxxxx\033[0m\n" +" \033[31;41mxxxxxxxxx\033[0m\n" +" \033[33;43mZZZZZ\033[34;44m....\033[0m %%%%%%%%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@\033[34;44m......\033[0m %%%%%%%%%. %%%....... %%%. %%%%%%%%%....\n" +" \033[37;47m@@@@\033[34;44m....\033[37mo\033[34m.\033[0m .....%%% %%% %%% %%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@\033[34;44m....\033[0m %%% %%% %%% %%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@\033[0m %%%% %%% %%% %%% %%% %%%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@\033[0m %%%% %%% %%% %%% %%% %%%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@@@\033[0m %%%%%%%%% %%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@\033[0m %%%%%%%%% %%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@@@\033[0m %%% %%%%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@\033[0m \033[31;41mxx\033[0m %%% %%%%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@@\033[0m %%% %%%%% %%%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@\033[0m %%% %%%%% %%%% %%% %%%\n" +" \033[37;47m@@@@@@@@@\033[0m .....%%%....... %%%%%%%%%%%%%%. %%%..........\n" +" \033[37;47m@@@@@\033[0m %%% %%%%%%%%%%%%%% %%%\n" +" \033[37;47m@@@@\033[0m\n\n"; + + +char*prods[] = { "pwplib", "peluce", "nykyaeka", "oldchsool", NULL }; + +void printconfig_win32native(f,name,mingwdir,mingwgcclib) + FILE*f; char*name,*mingwdir,*mingwgcclib; +{ + if(strcmp(name,"pwplib")) { + + fprintf(f,"\n\n" + "%s: $(OBJS)\n" + "\tld -Bdynamic -o %s.exe %s/lib/crt2.o " + "-L%s/lib -L%s $(OBJS) ../pwplib.a " + "-lgcc -lmoldname -lmsvcrt -lkernel32 " + "-lwinmm -lmingw32\n" + "\tstrip %s.exe\n" + "\tupx %s.exe\n\n", + + name, + name,mingwdir, + mingwdir,mingwgcclib, + name,name); + } + + fprintf(f,"%%.o: %%.c\n" + "\tgcc -O2 -mno-cygwin -I../pwplib -c -o $@ -DDRIVE_WIN32 $(@:.o=.c)\n\n"); +} + +char*systype; + +int cpu_is_little_endian() +{ + int numeric=1; + char*s=(char*)&numeric; + return (int)(*s); +} + +void printconfig_unix(f,name,ccinvo,ldflags) + FILE*f; char*name,*ccinvo,*ldflags; +{ + if(strcmp(name,"pwplib")) { + + fprintf(f,"\n\n" + "%s: $(OBJS) ../pwplib.a\n" + "\t%s -o $@ $+ %s\n\n", + name,ccinvo,ldflags); + } + + fprintf(f,"%%.o: %%.c\n" + "\t%s -I../pwplib -c -o $@ $(@:.o=.c)\n\n", + ccinvo); +} + +void print_valid_systypes() +{ + puts("* Valid systypes are:\n" + " linux - linux with oss & vcsa console (host endian check)\n" + " sdl - generic unix with SDL library (host endian check)\n" + " unix - generic unix without sound support (host endian check)\n" + " hpux - hp-ux (big-endian unix with native sound support)\n" + " cygwin - windows pc system with cygwin\n" + " win32 - native win32 binary (cygwin + mingw32 libraries)\n\n"); +} + +void makeconfig(prodname,systype) + char*prodname,*systype; +{ + char makefile_in[32],makefile[32]; + FILE *f_in,*f; + + printf("* Writing makefile for %s\n",prodname); + + sprintf(makefile_in,"%s/Makefile.in",prodname); + sprintf(makefile, "%s/Makefile", prodname); + + f_in = fopen(makefile_in,"r"); + f = fopen(makefile, "w"); + + if(f==NULL) { puts("* Error writing Makefile\n"); exit(1); } + if(f_in==NULL) { puts("* Error reading Makefile.in\n"); exit(1); } + + {int c; + while((c=fgetc(f_in))!=EOF) { fputc(c,f); }} + + if(!strcmp(systype,"unix")) + { + if(!cpu_is_little_endian()) + printconfig_unix(f,prodname,"gcc -O2 -DUNIX -DBIG_ENDIAN","-lm"); else + printconfig_unix(f,prodname,"gcc -O2 -DUNIX","-lm"); + } + else + if(!strcmp(systype,"hpux")) + printconfig_unix(f,prodname,"gcc -O2 -DUNIX -DBIG_ENDIAN -DDRIVE_HPUX","-lm"); + else + if(!strcmp(systype,"linux")) + { + if(!cpu_is_little_endian()) + printconfig_unix(f,prodname,"gcc -O2 -DUNIX -DDRIVE_OSS -DDRIVE_LINUXCON -DBIG_ENDIAN","-lm");else + printconfig_unix(f,prodname,"gcc -O2 -DUNIX -DDRIVE_OSS -DDRIVE_LINUXCON","-lm"); + } + else + if(!strcmp(systype,"sdl")) + { + if(!cpu_is_little_endian()) + printconfig_unix(f,prodname,"gcc -O2 -DUNIX -DDRIVE_SDL -DBIG_ENDIAN `sdl-config --cflags`","-lm `sdl-config --libs`");else + printconfig_unix(f,prodname,"gcc -O2 -DUNIX -DDRIVE_SDL `sdl-config --cflags`","-lm `sdl-config --libs`"); + } + else + if(!strcmp(systype,"cygwin")) + printconfig_unix(f,prodname,"gcc -O2 -DDRIVE_WIN32","-lm -lwinmm"); + else + if(!strcmp(systype,"win32")) + printconfig_win32native + (f,prodname,"/usr/local/mingw", + "/usr/local/mingw/lib/gcc-lib/mingw32/2.95.3-4"); + else + { + puts("* Invalid systype!"); print_valid_systypes(); + exit(1); + } + + fclose(f_in); + fclose(f); +} + +int main(argc,argv) + int argc; char**argv; +{ + puts(pwplogo); + + if(argc<=1) + { + printf("* Usage: %s systype\n",argv[0]); + print_valid_systypes(); + exit(0); + } + else systype=argv[1]; + + {char**p=prods; + while(*p!=NULL) + { + makeconfig(*p,systype); + p++; + } + } + + puts("* Finished writing makefiles! Now 'make'\n"); + + return 0; +} + + + + diff -r 000000000000 -r acb5694e93d9 final_isi/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/Makefile Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,17 @@ +TARGETS=fisi + +all: fisi + +CFLAGS = -g -O2 -W -Wall +LDFLAGS = -g + +OBJS = fiscroll.o fisi3d.o fisidemo.o fisieffu.o fisifont.o fisimain.o fisitime.o wrapper.o + +%.o: %.c + $(CC) $(CFLAGS) -c -o $@ $< + +fisi: $(OBJS) ../pwplib.a + $(CC) $(LDFLAGS) -c -o $@ $+ `sdl-config --libs` + +clean: + $(RM) $(TARGETS) *.o diff -r 000000000000 -r acb5694e93d9 final_isi/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/README Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,3 @@ +Final Isi port requires a standard pwplib version to compile. + +Get it from http://www.hytti.uku.fi/~vheikkil/pwp/ diff -r 000000000000 -r acb5694e93d9 final_isi/filogo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/filogo.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,68 @@ +/* TheDraw C Crunched Screen Image. Date: 05/17/98 */ +#define LOGO_WIDTH 80 +#define LOGO_DEPTH 25 +#define LOGO_LENGTH 749 +unsigned char LOGO [] = { + 0x03, 0x10, 0x1A, 0x0A, 'Û', 0x19, 0x03, 'ß', 'ß', 'ß', 0x1A, 0x03, + 'Û', 'ß', 'ß', 'ß', 0x19, 0x03, 'Û', 'Û', 'Û', 0x1A, 0x05, 'ß', + 'Û', 'Û', 'Û', 0x19, 0x03, 'Û', 'Û', 'Û', 0x1A, 0x05, 'ß', 'Û', + 'Û', 'Û', 0x19, 0x02, 'Û', 'Û', 'Û', 0x18, 'Û', 'Û', 'Û', 0x1A, + 0x04, 'Ü', 0x19, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x06, 'Û', 'Û', 'Û', + 0x19, 0x05, 'Û', 'Û', 'Û', 0x19, 0x03, 'Û', 'Û', 'Û', 0x1A, 0x05, + 'ß', 'Û', 'Û', 'Û', 0x19, 0x02, 'Û', 'Û', 'Û', 0x1A, 0x09, 'Ü', + 0x18, 'Û', 'Û', 'Û', 0x19, 0x0B, 'Ü', 'Ü', 'Ü', 0x1A, 0x03, 'Û', + 'Ü', 'Ü', 'Ü', 0x19, 0x03, 'Û', 'Û', 'Û', 0x19, 0x05, 'ß', 'ß', + 'ß', 0x19, 0x03, 'ß', 'ß', 'ß', 0x19, 0x05, 'Û', 'Û', 'Û', 0x19, + 0x02, 0x08, 'Ü', 0x18, 0x19, ' ', 0x07, 'Ü', 0x06, 0x17, '°', '°', + ' ', '°', '°', '°', ' ', ' ', '°', '°', 0x00, 'ß', 0x10, 0x19, + 0x0E, 0x08, 'Û', ' ', 'Û', 0x18, 0x19, 0x17, 0x07, 'Ú', 0x1A, 0x05, + 'Ä', ' ', 'Þ', 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', + ' ', ' ', '(', 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', + ' ', ' ', 'Ä', 'Ä', 'Ä', '¿', ' ', ' ', 'Ú', 'Ä', 'Ä', ' ', + 0x08, 'Ü', 0x1A, 0x03, 'Û', 'Ü', 'Ü', 'Ü', 0x18, 0x19, 0x08, 0x07, + 'Ú', 0x1A, 0x08, 'Ä', '¿', 0x19, 0x03, '³', 0x19, 0x06, 0x17, 0x19, + 0x05, 0x04, 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, 0x04, 0x07, '³', ' ', + 'Ä', 'Ù', ' ', ' ', 0x08, 0x1A, 0x04, 'Û', 'Ü', 'Ü', 0x18, 0x19, + 0x08, 0x07, '³', 0x09, 'þ', 'þ', 'þ', 0x19, 0x05, 0x07, '³', 0x1A, + 0x04, 'Ä', '¿', 0x19, 0x05, 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, + 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', + ' ', 0x0C, '(', ' ', 0x10, 0x19, 0x04, 0x07, '³', 0x19, 0x03, 0x08, + 'Ü', 0x1A, 0x03, 'Û', 0x18, 0x19, 0x02, 0x07, 'Ú', 0x1A, 0x03, 'Ä', + ' ', '³', 0x09, 'þ', 'þ', 0x19, 0x06, 0x07, '³', 0x19, 0x04, '³', + 0x19, 0x05, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', 0x06, 'ß', 0x0F, 'ß', + 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', ' ', ' ', + 0x07, 0x10, 'Ý', 0x19, 0x08, 0x08, 0x1A, 0x04, 'Û', 0x18, 0x19, 0x02, + 0x07, '³', 0x09, 'þ', 'þ', 'þ', ' ', ' ', 0x07, '³', 0x09, 'þ', + 0x19, 0x07, 0x07, '³', 0x19, 0x06, 0x08, 0x1A, 0x04, 'Ü', 0x17, '°', + '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x10, 0x1A, 0x04, 'Ü', + ' ', ' ', 'Ü', 0x1A, 0x04, 'Û', 0x19, 0x03, 0x07, 'Ú', 0x1A, 0x04, + 'Ä', '¿', 0x18, 0x19, 0x02, '³', 0x09, 'þ', 'þ', 0x19, 0x02, 0x07, + '³', 0x19, 0x0D, 0x08, 'Ü', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', + 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x19, 0x04, 0x07, '³', 0x19, 0x04, '³', 0x18, 0x19, 0x02, + '³', 0x09, 'þ', 0x19, 0x03, 0x07, '³', 0x19, 0x0B, 0x08, 'Ü', 0x17, + 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', '²', + '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 'Û', 'Û', 0x19, 0x03, + 0x07, 'Ú', 'Ä', '´', 0x19, 0x04, '³', 0x18, 0x19, 0x02, '³', 0x19, + 0x04, '³', 0x19, 0x09, 0x08, 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', + '°', 'Û', '°', '°', '±', '±', '²', '²', '²', '±', 0x1A, 0x04, + '°', 0x1A, 0x09, 'Û', 0x10, 'Û', 0x19, 0x03, 0x07, '³', 0x18, 0x19, + 0x08, '³', 0x19, 0x07, 0x08, 'Ü', 0x17, 0x1A, 0x0F, 'Û', '±', 0x1A, + 0x04, '²', 0x1A, 0x0F, 'Û', 0x18, 0x10, 0x19, 0x0E, 'Ü', 0x17, 0x1A, + 0x12, 'Û', '±', '²', '²', '°', '±', 0x1A, 0x10, 'Û', 0x18, 0x10, + 0x19, 0x0D, 'Ü', 0x17, 0x1A, 0x05, 'Û', 0x10, ' ', 0x17, 0x1A, 0x0C, + 'Û', '±', '²', '²', 0x1A, 0x12, 'Û', 0x18, 0x10, 0x19, 0x0C, 0x17, + 0x1A, 0x05, 'Û', 0x10, 'Ý', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, + 'Ý', 0x18, 0x19, 0x0B, 0x17, 0x1A, 0x05, 'Û', 0x10, 'Ý', ' ', ' ', + 0x17, 0x1A, 0x22, 'Û', 0x18, 0x10, 0x19, 0x0B, 'ß', ' ', 'Û', ' ', + 'Û', ' ', 'ß', 0x19, 0x02, 0x1A, ' ', 'Û', 0x18, 0x19, 0x16, 'ß', + 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', 0x19, + 0x04, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', + 0x19, 0x06, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', 0x18, + 0x19, 0x0A, 'Ü', 0x1A, 0x19, 'Û', 0x19, 0x07, 'ß', 0x1A, 0x0D, 'Û', + 'Ü', 0x18, 0x03, 0x1A, 0x15, 'Û', 0x19, 0x04, 0x1A, 0x15, 'Û', 0x19, + 0x02, 0x1A, 0x15, 'Û', 0x18, 0x19, 0x07, 0x1A, 0x05, 'Û', 0x19, 0x0C, + 0x1A, 0x04, 'Û', 0x1A, 0x10, 'Ü', 0x19, 0x0B, 0x1A, 0x05, 'Û', 0x18, + 0x1A, 0x07, 'Ü', 0x1A, 0x05, 'Û', 0x1A, 0x07, 'Ü', 0x19, 0x04, 0x1A, + 0x0F, 'Ü', 0x1A, 0x05, 'Û', 0x19, 0x02, 0x1A, 0x08, 'Ü', 0x1A, 0x05, + 'Û', 0x1A, 0x06, 'Ü', 0x18}; diff -r 000000000000 -r acb5694e93d9 final_isi/fiscroll.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fiscroll.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,118 @@ +#include "wrapper.h" + +#include "fisi.h" + +/********************** sKROLLER *******************************/ + +struct{ + int offset; + int zoom; +}skrl[50]; + +/*extern char txr_slime[];*/ +/*#define skrmap0 txr_slime*/ + +char skrmap0[256]={ +0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00, +0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00, +0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00, +0x01,0x01,0x00,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01, +0x01,0x01,0x00,0x01,0x10,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x01,0x01, +0x01,0x01,0x01,0x01,0x10,0x11,0x11,0x10,0x10,0x10,0x10,0x11,0x11,0x10,0x10,0x01, +0x01,0x01,0x01,0x10,0x10,0x11,0x10,0x10,0x01,0x01,0x10,0x10,0x11,0x11,0x10,0x01, +0x01,0x01,0x01,0x10,0x11,0x11,0x10,0x10,0x01,0x01,0x10,0x10,0x11,0x11,0x10,0x01, +0x01,0x01,0x10,0x10,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x10,0x01,0x01, +0x01,0x10,0x10,0x11,0x11,0x10,0x10,0x10,0x11,0x11,0x11,0x11,0x10,0x10,0x01,0x01, +0x01,0x10,0x11,0x11,0x10,0x01,0x10,0x10,0x11,0x10,0x10,0x10,0x10,0x01,0x01,0x10, +0x01,0x10,0x11,0x10,0x01,0x01,0x01,0x10,0x11,0x10,0x01,0x01,0x01,0x01,0x11,0x10, +0x01,0x10,0x11,0x10,0x10,0x01,0x10,0x10,0x11,0x10,0x01,0x10,0x11,0x10,0x11,0x10, +0x01,0x10,0x10,0x11,0x10,0x10,0x10,0x11,0x10,0x10,0x01,0x10,0x11,0x10,0x01,0x10, +0x01,0x01,0x10,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x00, +0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01 +}; + +char skrmap[512]; +unsigned char skramble[256]; + +extern char sini[]; + +int skr_parms; +int skr_ambles; + +extern char lensb[],txr_neon[],txr_dunneon[],txr_slime[]; + +scr_txr(int k) +{ + int i;char*j=skrmap;char*txr; + if(k==0)txr=skrmap0; + if(k==1)txr=lensb; + if(k==2)txr=txr_neon; + if(k==3)txr=txr_dunneon; + if(k==4)txr=txr_slime; + for(i=256;i;i--)*j++=*txr++; +} + +scroller_init(int parms) +{ + int y; + skr_parms=parms; + + if(parms&HORIZON){ + for(y=0;y<50;y++){ + skrl[y].offset=(200/(4+y))<<12; /* 10+ */ + skrl[y].zoom =1000/(10+y); /* 2400 */ + } + }else + for(y=0;y<50;y++){ + skrl[y].offset=(1200/(20+y))<<12; /* 1200 */ + skrl[y].zoom =2000/(10+y); /* 2000 */ + } + + if(parms&NOSKRAMBLE){ + memcpy(skrmap,skrmap0,256); + skr_ambles=0; + } + else + { + memset(skrmap,0,256); + for(y=0;y<256;y++)skramble[y]=y; + for(y=0;y<256;y++){ + int j=rand()&255,tmp; + tmp=skramble[j];skramble[j]=skramble[y];skramble[y]=tmp; + } + skr_ambles=256; + } +} + +scroller_do(char*buf,int t,int hg) +{ + + static int lastt=0; + char*d=buf;int y,offy; + + if(hg<0)hg=0;else if(hg>49)hg=49; + + memset(d,0,80*(50-hg)); + d+=80*(50-hg); + + if(skr_ambles){int tt=t;if(tt>256)tt=256; + while(lastt>8)&255];} + #else + skr_dorow(d,skrmap,dofz,ofz); + d+=80; + #endif + } +} diff -r 000000000000 -r acb5694e93d9 final_isi/fiscroll.o Binary file final_isi/fiscroll.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/fisi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisi.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,26 @@ +#define SINGLE 1 +#define HYBRID 2 +#define DOUBLE 3 + +/***********************/ + +#define NONE 0 + +/***********************/ + +#define SCROLLER 1 + +#define NOSKRAMBLE 1 +#define HORIZON 2 + +/***********************/ + +typedef struct{signed int curr,targ,frac;}framekey; + +#define OX 0 +#define OY 1 +#define OZOOM 2 +#define OROT 3 +#define OHGT 4 +#define OFLX 5 +#define OFLY 6 diff -r 000000000000 -r acb5694e93d9 final_isi/fisi3d.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisi3d.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,385 @@ +#include "wrapper.h" + +/*****/ + +char txr_wsygn[16*16]={ /* syaani/sininen. hieno. parempi keltapunas„vyiss„? */ +0x11,0x19,0x97,0x97,0x97,0x11,0x11,0x11,0x79,0x97,0x97,0x97,0x11,0x11,0x11,0x11, +0x11,0x79,0x97,0x97,0x97,0x79,0x19,0x11,0x79,0x97,0x97,0x97,0x11,0x19,0x11,0x11, +0x11,0x11,0x91,0x97,0x97,0x97,0x19,0x11,0x19,0x97,0x97,0x97,0x79,0x19,0x11,0x11, +0x11,0x19,0x79,0x97,0x97,0x97,0x19,0x11,0x11,0x91,0x97,0x97,0x97,0x19,0x11,0x11, +0x11,0x91,0x97,0x97,0x97,0x91,0x11,0x11,0x19,0x79,0x97,0x97,0x97,0x79,0x11,0x11, +0x11,0x19,0x97,0x77,0x97,0x11,0x11,0x11,0x19,0x97,0x97,0x97,0x91,0x19,0x11,0x11, +0x11,0x79,0x97,0x97,0x97,0x97,0x79,0x19,0x11,0x97,0x97,0x97,0x79,0x19,0x11,0x11, +0x11,0x11,0x91,0x97,0x77,0x97,0x19,0x11,0x11,0x91,0x97,0x97,0x97,0x79,0x10,0x10, +0x11,0x11,0x11,0x97,0x77,0x97,0x19,0x11,0x11,0x11,0x97,0x77,0x97,0x11,0x11,0x10, +0x11,0x19,0x79,0x97,0x97,0x97,0x19,0x11,0x19,0x79,0x97,0x97,0x97,0x19,0x11,0x10, +0x11,0x19,0x97,0x97,0x97,0x91,0x11,0x11,0x19,0x97,0x97,0x97,0x91,0x19,0x11,0x10, +0x11,0x19,0x97,0x77,0x97,0x11,0x11,0x11,0x11,0x97,0x77,0x97,0x79,0x19,0x11,0x11, +0x11,0x79,0x97,0x97,0x97,0x79,0x19,0x11,0x10,0x97,0x97,0x97,0x97,0x19,0x11,0x11, +0x11,0x11,0x91,0x97,0x97,0x97,0x19,0x11,0x19,0x79,0x97,0x97,0x97,0x11,0x11,0x11, +0x11,0x19,0x79,0x97,0x97,0x97,0x19,0x11,0x19,0x97,0x97,0x97,0x91,0x19,0x11,0x11, +0x11,0x79,0x97,0x97,0x97,0x79,0x19,0x11,0x79,0x97,0x97,0x97,0x79,0x19,0x11,0x10 +}; + + +char txr_dunneon[16*16]={ /* neonjuovia. k„ytett„v„. */ +0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80, +0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80, +0x80,0x80,0x08,0x00,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80, +0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x00,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80, +0x80,0x80,0x80,0x08,0x80,0x80,0x08,0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80, +0x80,0x80,0x80,0x08,0x80,0x80,0x08,0x00,0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x80, +0x80,0x80,0x08,0x00,0x80,0x80,0x08,0x00,0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x80, +0x80,0x80,0x08,0x00,0x80,0x80,0x08,0x08,0x80,0x80,0x80,0x08,0x08,0x80,0x80,0x80, +0x80,0x80,0x08,0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80, +0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80, +0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80, +0x80,0x80,0x08,0x00,0x08,0x80,0x80,0x08,0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x80, +0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x08,0x80,0x80,0x08,0x00,0x08,0x80,0x80,0x80, +0x80,0x80,0x08,0x00,0x80,0x80,0x80,0x08,0x80,0x80,0x08,0x08,0x08,0x80,0x80,0x80, +0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x00,0x08,0x80,0x80,0x80, +0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x08,0x80,0x80,0x80,0x80 +}; + +char txr_unneon[16*16]={ +0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78, +0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78, +0x78,0x78,0x07,0x00,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78, +0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x00,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78, +0x78,0x78,0x78,0x07,0x78,0x78,0x07,0x00,0x78,0x78,0x78,0x00,0x78,0x78,0x78,0x78, +0x78,0x78,0x78,0x07,0x78,0x78,0x07,0x00,0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x78, +0x78,0x78,0x07,0x00,0x78,0x78,0x07,0x00,0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x78, +0x78,0x78,0x07,0x00,0x78,0x78,0x07,0x07,0x78,0x78,0x78,0x07,0x07,0x78,0x78,0x78, +0x78,0x78,0x07,0x00,0x78,0x78,0x78,0x00,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78, +0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78, +0x78,0x78,0x78,0x00,0x78,0x78,0x78,0x00,0x78,0x78,0x78,0x00,0x78,0x78,0x78,0x78, +0x78,0x78,0x07,0x00,0x07,0x78,0x78,0x07,0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x78, +0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x07,0x78,0x78,0x07,0x00,0x07,0x78,0x78,0x78, +0x78,0x78,0x07,0x00,0x78,0x78,0x78,0x07,0x78,0x78,0x07,0x07,0x07,0x78,0x78,0x78, +0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x00,0x07,0x78,0x78,0x78, +0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x07,0x78,0x78,0x78,0x78 +}; + +char txr_neon[16*16]={ +0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x40,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, +0x00,0x00,0x04,0x5c,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x5c,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x40,0x00,0x00,0x04,0x5c,0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x00, +0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x5c,0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x00, +0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x40,0x00,0x00,0x00,0x40,0x04,0x00,0x00,0x00, +0x00,0x00,0x04,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x00, +0x00,0x00,0x04,0x5c,0x04,0x00,0x00,0x40,0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x40,0x00,0x00,0x04,0x5c,0x04,0x00,0x00,0x00, +0x00,0x00,0x04,0x5c,0x00,0x00,0x00,0x04,0x00,0x00,0x04,0x40,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x5c,0x04,0x00,0x00,0x00, +0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00 +}; + +char txr_gslime[16*16]={ +0x88,0x80,0x00,0x80,0x80,0x88,0x88,0x88,0x80,0x08,0x00,0x00,0x08,0x88,0x80,0x00, +0x80,0x08,0x00,0x08,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x88,0x80,0x08,0x00, +0x08,0x00,0x00,0x00,0x08,0x08,0x80,0x00,0x00,0x00,0x08,0x80,0x80,0x00,0x00,0x88, +0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x80,0x00,0x08,0x88,0x80, +0x00,0x08,0x80,0x08,0x00,0x00,0x08,0x88,0x88,0x88,0x00,0x80,0x00,0x08,0x80,0x00, +0x08,0x80,0x80,0x08,0x00,0x08,0x80,0x88,0x88,0x88,0x08,0x80,0x00,0x00,0x00,0x08, +0x88,0x88,0x88,0x80,0x00,0x08,0x80,0x88,0x88,0x88,0x80,0x80,0x00,0x00,0x08,0x80, +0x88,0x88,0x80,0x80,0x00,0x00,0x08,0x80,0x80,0x08,0x00,0x00,0x00,0x80,0x88,0x88, +0x88,0x88,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x88,0x88, +0x80,0x80,0x00,0x00,0x08,0x08,0x00,0x00,0x08,0x80,0x80,0x80,0x80,0x80,0x08,0x88, +0x08,0x00,0x08,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x08,0x08,0x80,0x80,0x08,0x88, +0x80,0x80,0x80,0x80,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x80, +0x88,0x88,0x88,0x88,0x88,0x80,0x80,0x80,0x08,0x08,0x00,0x00,0x08,0x08,0x00,0x80, +0x88,0x88,0x88,0x88,0x88,0x80,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00, +0x88,0x88,0x88,0x08,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x80,0x80,0x00, +0x88,0x08,0x00,0x00,0x00,0x00,0x08,0x08,0x80,0x80,0x80,0x08,0x00,0x88,0x80,0x80 +}; + +char txr_slime[16*16]={ /* vihre„ laikukas. hienokiva. */ +0x22,0x20,0x00,0x20,0x20,0x22,0x22,0x22,0x20,0x02,0x00,0x00,0x02,0x22,0x20,0x00, +0x20,0x02,0x00,0x02,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x20,0x22,0x20,0x02,0x00, +0x02,0x00,0x00,0x00,0x02,0x02,0x20,0x00,0x00,0x00,0x02,0x20,0x20,0x00,0x00,0x22, +0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x20,0x00,0x02,0x22,0x20, +0x00,0x02,0x20,0x02,0x00,0x00,0x02,0x22,0x22,0x22,0x00,0x20,0x00,0x02,0x20,0x00, +0x02,0x20,0x20,0x02,0x00,0x02,0x20,0x22,0x22,0x22,0x02,0x20,0x00,0x00,0x00,0x02, +0x22,0x22,0x22,0x20,0x00,0x02,0x20,0x22,0x22,0x22,0x20,0x20,0x00,0x00,0x02,0x20, +0x22,0x22,0x20,0x20,0x00,0x00,0x02,0x20,0x20,0x02,0x00,0x00,0x00,0x20,0x22,0x22, +0x22,0x22,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x22,0x22, +0x20,0x20,0x00,0x00,0x02,0x02,0x00,0x00,0x02,0x20,0x20,0x20,0x20,0x20,0x02,0x22, +0x02,0x00,0x02,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x02,0x02,0x20,0x20,0x02,0x22, +0x20,0x20,0x20,0x20,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x20, +0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x20,0x02,0x02,0x00,0x00,0x02,0x02,0x00,0x20, +0x22,0x22,0x22,0x22,0x22,0x20,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00, +0x22,0x22,0x22,0x02,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00, +0x22,0x02,0x00,0x00,0x00,0x00,0x02,0x02,0x20,0x20,0x20,0x02,0x00,0x22,0x20,0x20 +}; + +typedef struct{signed int x,z,y;}xyz; +typedef struct{signed int a,r,y;}cyl; +typedef struct{int p[3]; int nn; char*txrf,*txrb;}face; + +typedef struct{ + + int numvxes; + cyl*vxes; + xyz*rotated; + + int numfaces; + face*faces; + +}obj3d; + +#define sint signed int + +/** XWING **/ + +/* +xyz cube_vxes[]={ + -6000,-1000,2000, + -6000,-1000,-2000, + 6000,-1000,2000, + 6000,-1000,-2000, + + -1500,2000,0, + -1500,-1000,0, + 1500,2000,0, + 1500,-100,0, + + 0,2500,0, + + 0,1000,-1500 +}; + +face cube_faces[]={ + 0,4,5, 0, txr_wsygn,txr_dunneon, + 1,5,4, 0, txr_wsygn,txr_dunneon, + 2,7,6, 0, txr_wsygn,txr_dunneon, + 3,6,7, 0, txr_wsygn,txr_dunneon, + + 9,8,4, 0, txr_wsygn,NULL, + 9,7,8, 0, txr_wsygn,NULL, + 9,4,5, 0, txr_unneon,NULL, + 9,7,6, 0, txr_unneon,NULL, + 9,5,6, 0, txr_unneon,NULL +}; +*/ + +/********/ +/********/ + +cyl xwing_vxes[]={ + 134,6082,1000, + 134,6082,-1000, + 250,6082,1000, + 250,6082,-1000, + 91,3000,0, /* 2500 */ + 151,1802,0, + 37,3000,0, /* 2500 */ + 254,1503,0, + 64,2500,0, + 64,1000,-750 +}; + +face xwing_faces[]={ + 4,5,0, 0, txr_wsygn,txr_dunneon, + 1,5,4, 0, txr_wsygn,txr_dunneon, + 7,6,2, 0, txr_wsygn,txr_dunneon, + 3,6,7, 0, txr_wsygn,txr_dunneon, + + 9,8,4, 0, txr_wsygn,NULL, + 9,7,8, 0, txr_wsygn,NULL, + 9,4,5, 0, txr_unneon,NULL, + 9,7,6, 0, txr_unneon,NULL, + 9,5,6, 0, txr_unneon,NULL +}; + +obj3d xwing={ + 10,xwing_vxes,NULL,9,xwing_faces +}; + +cyl bugi_vxes[]={ + 96,2828,0, + 32,2828,0, + 224,2828,0, + 160,2828,0, + 0,0,-800, + 45,6708,1000, + 238,6708,1000, + 173,6708,1000, + 110,6708,1000 +}; + +face bugi_faces[]={ + 4,1,0, 0, txr_slime,NULL, + 4,2,1, 0, txr_slime,NULL, + 4,3,2, 0, txr_slime,NULL, + 4,0,3, 0, txr_slime,NULL, + + 0,1,5, 0, txr_slime,txr_gslime, + 1,2,6, 0, txr_slime,txr_gslime, + 2,3,7, 0, txr_slime,txr_gslime, + 3,0,8, 0, txr_slime,txr_gslime +}; + +obj3d bugi={ + 9,bugi_vxes,NULL,8,bugi_faces +}; + +obj3d obu; + +#include "sini16.h" + +sint dvhtab[50]; +sint dutab[320]; + +eggine_init() +{ + int i; + dvhtab[0]=32760; + for(i=1;i<50;i++)dvhtab[i]=4096/i; + dutab[0]=32760; + for(i=1;i<320;i++)dutab[i]=(64*256)/i; +} + +eggine_load(sint n) +{ + obj3d*o; + if(!n)o=&xwing;else o=&bugi; + + if(o->rotated==NULL) + o->rotated=malloc(o->numvxes*sizeof(xyz)); + + memcpy(&obu,o,sizeof(obu)); +} + +extern int polytxloop + (sint h,char*di,unsigned int x1,sint dx0,sint dx1,char*txr, + sint dv,sint du); + +sint polytxr( + char*buf, + sint y,sint h,sint x0,sint x1,sint dx0,sint dx1, + char*txr){ + + register sint du; char joo=0; + + if(y+h>=50)h=49-y; + if(h>0)if(y>=0){ + + if((x0>x1)||((x0==x1)&&(dx0>dx1))) + {sint tmp=x0;x0=x1;x1=tmp; + tmp=dx0;dx0=dx1;dx1=tmp; + joo=1;} + x1-=x0;dx1-=dx0; + + du=x1>>6; + if(!du)du=((dx1-dx0)*h) >>6; /* dx1-dx0?? */ + if(du)du=(64*256)/du;/*dutab[du];*/ + + x1=polytxloop(h,buf+80*y+(x0>>8), + x1, + dx0, + dx1, + txr, + dvhtab[h], + du); + + return (!joo)?x0+x1+h*dx0:x1; + } +} + +/*******************************/ + +extern signed int mul32(signed int a,signed int b); + +#define jmul32(a,b) (((long)(a)*(long)(b))>>16) + +extern int taimeri; + +eggine_do(char*b,sint rot,int zoom,int basex,int basey) { + register sint i; sint j; sint fzed[20],fcez[20]; + + if(obu.faces==bugi_faces){ + bugi_vxes[5].y=bugi_vxes[6].y= + 1000+mul32(700,sini16[(taimeri*13)&255]); + bugi_vxes[7].y=bugi_vxes[8].y= + 1000+mul32(700,sini16[(taimeri*7)&255]); + } + + /***** rotate vertices *****/ + + {cyl*v=obu.vxes;xyz*r=obu.rotated; + + for(i=obu.numvxes;i;i--) { + r->y=mul32(v->y,zoom)+basey; + r->x=mul32(mul32(v->r,sini16[(rot+v->a)&255]),zoom)+basex; + r->z=mul32(mul32(v->r,sini16[(rot+v->a+64)&255]),zoom); + r++;v++; + }} + + /***** calc facezeds, sort faces *****/ + + {sint *t=fzed;face*f=obu.faces; for(i=obu.numfaces;i;i--){ + *t++=obu.rotated[f->p[0]].z+ obu.rotated[f->p[1]].z+ + obu.rotated[f->p[2]].z; f++; + }} + + {sint *t=fcez;sint j=0; for(i=obu.numfaces;i;i--)*t++=j++; } + + /* stupid bubblesort */ + +for(i=0;ip[0]].x<<3; + y0=tmp[f->p[0]].y>>5; + x1=tmp[f->p[1]].x<<3; + y1=tmp[f->p[1]].y>>5; + x2=tmp[f->p[2]].x<<3; + y2=tmp[f->p[2]].y>>5; + } + + nz=((x1-x0)>>8)*(y2-y0)-((x2-x0)>>8)*(y1-y0); + if(nz<0)txr=f->txrf;else txr=f->txrb; + if(txr!=NULL) + { + + if(y0!=y2){ + + sint tmpk,tmpx2; + + if (y0!=y1) + tmpx2=polytxr(b,y0,y1-y0,x0,x0, + (x1-x0)/(y1-y0), + tmpk=(x2-x0)/(y2-y0), txr); + else {tmpk=(x2-x0)/(y2-y0);tmpx2=x0;} + + if (y1!=y2) + polytxr(b,y1,y2-y1,x1,tmpx2, + (x2-x1)/(y2-y1), + tmpk, txr); + } + } + /***************************************/ + } + + }}/* end drawfaces*/ +} diff -r 000000000000 -r acb5694e93d9 final_isi/fisi3d.o Binary file final_isi/fisi3d.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/fisiansi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisiansi.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,1096 @@ +unsigned char LOGO [749] = { + 0x03, 0x10, 0x1A, 0x0A, 'Û', 0x19, 0x03, 'ß', 'ß', 'ß', 0x1A, 0x03, + 'Û', 'ß', 'ß', 'ß', 0x19, 0x03, 'Û', 'Û', 'Û', 0x1A, 0x05, 'ß', + 'Û', 'Û', 'Û', 0x19, 0x03, 'Û', 'Û', 'Û', 0x1A, 0x05, 'ß', 'Û', + 'Û', 'Û', 0x19, 0x02, 'Û', 'Û', 'Û', 0x18, 'Û', 'Û', 'Û', 0x1A, + 0x04, 'Ü', 0x19, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x06, 'Û', 'Û', 'Û', + 0x19, 0x05, 'Û', 'Û', 'Û', 0x19, 0x03, 'Û', 'Û', 'Û', 0x1A, 0x05, + 'ß', 'Û', 'Û', 'Û', 0x19, 0x02, 'Û', 'Û', 'Û', 0x1A, 0x09, 'Ü', + 0x18, 'Û', 'Û', 'Û', 0x19, 0x0B, 'Ü', 'Ü', 'Ü', 0x1A, 0x03, 'Û', + 'Ü', 'Ü', 'Ü', 0x19, 0x03, 'Û', 'Û', 'Û', 0x19, 0x05, 'ß', 'ß', + 'ß', 0x19, 0x03, 'ß', 'ß', 'ß', 0x19, 0x05, 'Û', 'Û', 'Û', 0x19, + 0x02, 0x08, 'Ü', 0x18, 0x19, ' ', 0x07, 'Ü', 0x06, 0x17, '°', '°', + ' ', '°', '°', '°', ' ', ' ', '°', '°', 0x00, 'ß', 0x10, 0x19, + 0x0E, 0x08, 'Û', ' ', 'Û', 0x18, 0x19, 0x17, 0x07, 'Ú', 0x1A, 0x05, + 'Ä', ' ', 'Þ', 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', + ' ', ' ', '(', 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', + ' ', ' ', 'Ä', 'Ä', 'Ä', '¿', ' ', ' ', 'Ú', 'Ä', 'Ä', ' ', + 0x08, 'Ü', 0x1A, 0x03, 'Û', 'Ü', 'Ü', 'Ü', 0x18, 0x19, 0x08, 0x07, + 'Ú', 0x1A, 0x08, 'Ä', '¿', 0x19, 0x03, '³', 0x19, 0x06, 0x17, 0x19, + 0x05, 0x04, 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, 0x04, 0x07, '³', ' ', + 'Ä', 'Ù', ' ', ' ', 0x08, 0x1A, 0x04, 'Û', 'Ü', 'Ü', 0x18, 0x19, + 0x08, 0x07, '³', 0x09, 'þ', 'þ', 'þ', 0x19, 0x05, 0x07, '³', 0x1A, + 0x04, 'Ä', '¿', 0x19, 0x05, 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, + 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', + ' ', 0x0C, '(', ' ', 0x10, 0x19, 0x04, 0x07, '³', 0x19, 0x03, 0x08, + 'Ü', 0x1A, 0x03, 'Û', 0x18, 0x19, 0x02, 0x07, 'Ú', 0x1A, 0x03, 'Ä', + ' ', '³', 0x09, 'þ', 'þ', 0x19, 0x06, 0x07, '³', 0x19, 0x04, '³', + 0x19, 0x05, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', 0x06, 'ß', 0x0F, 'ß', + 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', ' ', ' ', + 0x07, 0x10, 'Ý', 0x19, 0x08, 0x08, 0x1A, 0x04, 'Û', 0x18, 0x19, 0x02, + 0x07, '³', 0x09, 'þ', 'þ', 'þ', ' ', ' ', 0x07, '³', 0x09, 'þ', + 0x19, 0x07, 0x07, '³', 0x19, 0x06, 0x08, 0x1A, 0x04, 'Ü', 0x17, '°', + '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x10, 0x1A, 0x04, 'Ü', + ' ', ' ', 'Ü', 0x1A, 0x04, 'Û', 0x19, 0x03, 0x07, 'Ú', 0x1A, 0x04, + 'Ä', '¿', 0x18, 0x19, 0x02, '³', 0x09, 'þ', 'þ', 0x19, 0x02, 0x07, + '³', 0x19, 0x0D, 0x08, 'Ü', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', + 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x19, 0x04, 0x07, '³', 0x19, 0x04, '³', 0x18, 0x19, 0x02, + '³', 0x09, 'þ', 0x19, 0x03, 0x07, '³', 0x19, 0x0B, 0x08, 'Ü', 0x17, + 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', '²', + '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 'Û', 'Û', 0x19, 0x03, + 0x07, 'Ú', 'Ä', '´', 0x19, 0x04, '³', 0x18, 0x19, 0x02, '³', 0x19, + 0x04, '³', 0x19, 0x09, 0x08, 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', + '°', 'Û', '°', '°', '±', '±', '²', '²', '²', '±', 0x1A, 0x04, + '°', 0x1A, 0x09, 'Û', 0x10, 'Û', 0x19, 0x03, 0x07, '³', 0x18, 0x19, + 0x08, '³', 0x19, 0x07, 0x08, 'Ü', 0x17, 0x1A, 0x0F, 'Û', '±', 0x1A, + 0x04, '²', 0x1A, 0x0F, 'Û', 0x18, 0x10, 0x19, 0x0E, 'Ü', 0x17, 0x1A, + 0x12, 'Û', '±', '²', '²', '°', '±', 0x1A, 0x10, 'Û', 0x18, 0x10, + 0x19, 0x0D, 'Ü', 0x17, 0x1A, 0x05, 'Û', 0x10, ' ', 0x17, 0x1A, 0x0C, + 'Û', '±', '²', '²', 0x1A, 0x12, 'Û', 0x18, 0x10, 0x19, 0x0C, 0x17, + 0x1A, 0x05, 'Û', 0x10, 'Ý', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, + 'Ý', 0x18, 0x19, 0x0B, 0x17, 0x1A, 0x05, 'Û', 0x10, 'Ý', ' ', ' ', + 0x17, 0x1A, 0x22, 'Û', 0x18, 0x10, 0x19, 0x0B, 'ß', ' ', 'Û', ' ', + 'Û', ' ', 'ß', 0x19, 0x02, 0x1A, ' ', 'Û', 0x18, 0x19, 0x16, 'ß', + 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', 0x19, + 0x04, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', + 0x19, 0x06, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', 0x18, + 0x19, 0x0A, 'Ü', 0x1A, 0x19, 'Û', 0x19, 0x07, 'ß', 0x1A, 0x0D, 'Û', + 'Ü', 0x18, 0x03, 0x1A, 0x15, 'Û', 0x19, 0x04, 0x1A, 0x15, 'Û', 0x19, + 0x02, 0x1A, 0x15, 'Û', 0x18, 0x19, 0x07, 0x1A, 0x05, 'Û', 0x19, 0x0C, + 0x1A, 0x04, 'Û', 0x1A, 0x10, 'Ü', 0x19, 0x0B, 0x1A, 0x05, 'Û', 0x18, + 0x1A, 0x07, 'Ü', 0x1A, 0x05, 'Û', 0x1A, 0x07, 'Ü', 0x19, 0x04, 0x1A, + 0x0F, 'Ü', 0x1A, 0x05, 'Û', 0x19, 0x02, 0x1A, 0x08, 'Ü', 0x1A, 0x05, + 'Û', 0x1A, 0x06, 'Ü', 0x18}; + +#define VPELU0_LENGTH 371 +unsigned char VPELU0 [371] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x02, 0x08, + '(', ')', 'Ñ', '(', ')', 0x18, 0x19, 0x04, 0x04, '³', 0x19, 0x11, + 0x07, 'Ä', 'Â', 0x1A, 0x04, 'Ä', 0x19, '#', 'Ä', 'Â', 0x1A, 0x06, + 'Ä', 0x18, 0x19, 0x02, 0x04, 'Þ', 0x1A, 0x05, 'Û', 'Ü', 'Ü', 'Ü', + 0x19, 0x05, 0x07, 0x1A, 0x05, 'Ä', 'Ù', 0x19, 0x1B, 'Ä', 'Ä', 'Â', + 0x1A, 0x0A, 'Ä', 'Á', 'Ä', 0x18, 0x19, 0x02, 0x0E, 0x14, 'Ü', 'Ü', + 'Ü', 0x01, 'Ü', 'Ü', 0x10, 0x19, 0x1A, 0x07, 'Ú', 'Ä', 0x19, 0x07, + 'Ä', 'Ä', 'Ä', 'Â', 0x1A, 0x06, 'Ä', 'Á', 'Ä', 'Ä', 0x18, ' ', + ' ', 'Þ', 'Û', 'Û', 0x01, 'Û', 'Û', 0x0F, 0x11, 'ú', 0x10, 0x19, + 0x19, 0x07, 'Ä', 'Ù', 0x19, 0x08, 'Ä', 'Ä', 'Ä', 'Á', 'Ä', 'Ä', + 0x18, ' ', ' ', 'Û', 'Û', 'Û', 0x11, 'Û', 'Ü', 'Ü', 0x18, 0x08, + 0x10, 'Ä', 'Ä', 0x07, 0x1A, 0x06, 'Û', 'Ü', 0x08, 0x1A, 'D', 'Ä', + 0x18, ' ', ' ', 0x07, 'Þ', 'Û', 'Û', 'Û', 'ß', 0x18, ' ', ' ', + 'Þ', 'Û', 'Û', 0x1A, 0x03, 'Ü', 0x04, 0x17, 'ß', 0x18, 0x10, 0x19, + 0x02, 0x07, 0x1A, 0x04, 'Û', 'ß', 0x19, '*', 0x03, 0x1A, 0x05, 'Ü', + 0x13, 0x19, 0x14, 0x18, 0x10, 0x19, 0x03, 0x07, 'Û', 'Û', 'Û', 0x19, + '!', 0x03, 0x1A, 0x05, 'Ü', 0x13, 0x19, 0x1F, 0x18, 0x04, 0x10, 0x1A, + 0x03, 'Ü', 0x07, 0x14, 'ß', 'ß', 'ß', 0x10, 0x19, 0x19, 0x03, 'Ü', + 'Ü', 'Ü', 0x13, 0x19, 0x05, 0x00, 0x1A, 0x05, 'Ü', 0x19, 0x06, 0x1A, + 0x0B, 'Û', 0x19, 0x0B, 0x18, 0x10, 0x19, 0x03, 0x07, 0x1A, 0x03, 'Û', + 0x19, 0x02, 'Ü', 'Ü', 'Ü', 0x19, 0x0C, 0x03, 'Ü', 'Ü', 'Ü', 0x13, + 0x19, 0x09, 0x00, 0x1A, 0x08, 'Û', 0x19, 0x02, 0x1A, 0x1A, 'Û', 0x18, + 0x10, 0x19, 0x03, 0x07, 0x1A, 0x04, 'Û', ' ', 'Û', 'Û', 'ß', 'Û', + 'Û', 'Ü', 0x19, 0x08, 0x13, 0x19, 0x0D, 0x00, 0x1A, 0x1C, 'Û', 0x19, + 0x0A, 0x18, 0x04, 0x10, 'Ü', 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x07, 'ß', + 0x10, 'ß', ' ', ' ', 'ß', 'Û', 'Û', 'Ü', 0x19, 0x07, 0x13, 0x19, + 0x0D, 0x00, 0x1A, 0x08, 'Û', 0x19, 0x02, 0x1A, 0x1A, 'Û', 0x18, 0x10, + 0x19, 0x02, 0x07, 'Þ', 0x1A, 0x04, 'Û', 'ß', 0x19, 0x05, 'ß', 'Û', + 'Û', 'Û', 0x19, 0x07, 0x03, 0x1A, 0x04, 'ß', 0x13, 0x19, 0x07, 0x00, + 0x1A, 0x06, 'ß', 0x19, 0x06, 0x1A, 0x0B, 'Û', 0x19, 0x0B, 0x18, 0x10, + 0x19, '%', 0x03, 0x1A, 0x0D, 'ß', 0x13, 0x19, 0x1A, 0x18, 0x18}; + +unsigned char VPELU2 [372] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x02, 0x08, + '(', ')', 'Ñ', '(', ')', 0x18, 0x19, 0x04, 0x04, '³', 0x19, 0x11, + 0x07, 'Ä', 'Â', 0x1A, 0x04, 'Ä', 0x19, '#', 'Ä', 'Â', 0x1A, 0x06, + 'Ä', 0x18, 0x19, 0x02, 0x04, 'Þ', 0x1A, 0x05, 'Û', 'Ü', 'Ü', 'Ü', + 0x19, 0x05, 0x07, 0x1A, 0x05, 'Ä', 'Ù', 0x19, 0x1B, 'Ä', 'Ä', 'Â', + 0x1A, 0x0A, 'Ä', 'Á', 'Ä', 0x18, 0x19, 0x02, 0x0E, 0x14, 'Ü', 'Ü', + 'Ü', 0x01, 'Ü', 'Ü', 0x10, 0x19, 0x1A, 0x07, 'Ú', 'Ä', 0x19, 0x07, + 'Ä', 'Ä', 'Ä', 'Â', 0x1A, 0x06, 'Ä', 'Á', 'Ä', 'Ä', 0x18, ' ', + ' ', 'Þ', 'Û', 'Û', 0x01, 'Û', 'Û', 0x0F, 0x11, 'ú', 0x10, 0x19, + 0x19, 0x07, 'Ä', 'Ù', 0x19, 0x08, 'Ä', 'Ä', 'Ä', 'Á', 'Ä', 'Ä', + 0x18, ' ', ' ', 'Û', 'Û', 'Û', 0x11, 'Û', 'Ü', 'Ü', 0x18, 0x08, + 0x10, 'Ä', 'Ä', 0x07, 0x1A, 0x06, 'Û', 'Ü', 0x08, 0x1A, 'D', 'Ä', + 0x18, ' ', ' ', 0x07, 'Þ', 'Û', 'Û', 'Û', 'ß', 0x18, ' ', ' ', + 'Þ', 'Û', 'Û', 0x1A, 0x03, 'Ü', 0x04, 0x17, 'ß', 0x18, 0x10, 0x19, + 0x02, 0x07, 0x1A, 0x04, 'Û', 'ß', 0x19, '*', 0x03, 0x1A, 0x05, 'Ü', + 0x13, 0x19, 0x14, 0x18, 0x10, 0x19, 0x03, 0x07, 'Û', 'Û', 'Û', 0x19, + '!', 0x03, 0x1A, 0x05, 'Ü', 0x13, 0x19, 0x1F, 0x18, 0x04, 0x10, 0x1A, + 0x03, 'Ü', 0x07, 0x14, 'ß', 'ß', 'ß', 0x10, 0x19, 0x19, 0x03, 'Ü', + 'Ü', 'Ü', 0x13, 0x19, 0x05, 0x00, 0x1A, 0x05, 'Ü', 0x19, 0x06, 0x1A, + 0x0B, 'Û', 0x19, 0x0B, 0x18, 0x10, 0x19, 0x03, 0x07, 0x1A, 0x03, 'Û', + 0x19, 0x02, 'Ü', 'Ü', 'Ü', 0x19, 0x0C, 0x03, 'Ü', 'Ü', 'Ü', 0x13, + 0x19, 0x09, 0x00, 'Ü', 0x1A, 0x08, 'Û', 0x19, 0x02, 0x1A, 0x19, 'Û', + 0x18, 0x10, 0x19, 0x03, 0x07, 0x1A, 0x04, 'Û', ' ', 'Û', 'Û', 'ß', + 'Û', 'Û', 'Ü', 0x19, 0x08, 0x13, 0x19, 0x0D, 0x00, 0x1A, 0x1C, 'Û', + 0x19, 0x0A, 0x18, 0x04, 0x10, 'Ü', 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x07, + 'ß', 0x10, 'ß', ' ', ' ', 'ß', 'Û', 'Û', 'Ü', 0x19, 0x07, 0x13, + 0x19, 0x0D, 0x00, 0x1A, 0x09, 'Û', 0x19, 0x02, 0x1A, 0x19, 'Û', 0x18, + 0x10, 0x19, 0x02, 0x07, 'Þ', 0x1A, 0x04, 'Û', 'ß', 0x19, 0x05, 'ß', + 'Û', 'Û', 'Û', 0x19, 0x07, 0x03, 0x1A, 0x04, 'ß', 0x13, 0x19, 0x08, + 0x00, 0x1A, 0x06, 'ß', 0x19, 0x05, 0x1A, 0x0B, 'Û', 0x19, 0x0B, 0x18, + 0x10, 0x19, '%', 0x03, 0x1A, 0x0D, 'ß', 0x13, 0x19, 0x1A, 0x18, 0x18}; + + +unsigned char VPELU1 [361] = { + 0x0F, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x02, 0x08, + '(', ')', 'Ñ', '(', ')', 0x18, 0x19, 0x04, 0x04, '³', 0x19, 0x11, + 0x07, 'Ä', 'Â', 0x1A, 0x04, 'Ä', 0x19, '#', 'Ä', 'Â', 0x1A, 0x06, + 'Ä', 0x18, 0x19, 0x02, 0x04, 'Þ', 0x1A, 0x05, 'Û', 'Ü', 'Ü', 'Ü', + 0x19, 0x05, 0x07, 0x1A, 0x05, 'Ä', 'Ù', 0x19, 0x1B, 'Ä', 'Ä', 'Â', + 0x1A, 0x0A, 'Ä', 'Á', 'Ä', 0x18, 0x19, 0x02, 0x0E, 0x14, 'Ü', 'Ü', + 'Ü', 0x01, 'Ü', 'Ü', 0x10, 0x19, 0x1A, 0x07, 'Ú', 'Ä', 0x19, 0x07, + 'Ä', 'Ä', 'Ä', 'Â', 0x1A, 0x06, 'Ä', 'Á', 'Ä', 'Ä', 0x18, ' ', + ' ', 'Þ', 'Û', 'Û', 0x01, 'Û', 'Û', 0x0F, 0x11, 'ú', 0x10, 0x19, + 0x19, 0x07, 'Ä', 'Ù', 0x19, 0x08, 'Ä', 'Ä', 'Ä', 'Á', 'Ä', 'Ä', + 0x18, ' ', ' ', 'Û', 'Û', 'Û', 0x11, 'Û', 'Ü', 'Ü', 0x18, 0x08, + 0x10, 'Ä', 'Ä', 0x07, 0x1A, 0x06, 'Û', 'Ü', 0x08, 0x1A, 'D', 'Ä', + 0x18, ' ', ' ', 0x07, 'Þ', 'Û', 'Û', 'Û', 'ß', 0x18, ' ', ' ', + 'Þ', 0x1A, 0x05, 'Û', 'ß', 0x18, 0x19, 0x02, 0x1A, 0x03, 'Û', 'ß', + 0x19, '+', 0x03, 0x1A, 0x05, 'Ü', 0x13, 0x19, 0x14, 0x18, 0x10, 0x19, + 0x03, 0x07, 'Û', 'Û', 'Û', 0x19, '!', 0x03, 0x1A, 0x05, 'Ü', 0x13, + 0x19, 0x1F, 0x18, 0x04, 0x10, 0x1A, 0x03, 'Ü', 0x07, 0x14, 'ß', 'ß', + 'ß', 0x10, 0x19, 0x04, 'Ü', 0x19, 0x13, 0x03, 'Ü', 'Ü', 'Ü', 0x13, + 0x19, 0x05, 0x00, 0x1A, 0x05, 'Ü', 0x19, 0x06, 0x1A, 0x0B, 'Û', 0x19, + 0x0B, 0x18, 0x10, 0x19, 0x03, 0x07, 0x1A, 0x03, 'Û', ' ', ' ', 'Ü', + 'Û', 'Û', 'Ü', 0x19, 0x0C, 0x03, 'Ü', 'Ü', 'Ü', 0x13, 0x19, 0x09, + 0x00, 0x1A, 0x08, 'Û', 0x19, 0x02, 0x1A, 0x1A, 'Û', 0x18, 0x10, 0x19, + 0x03, 0x07, 0x1A, 0x07, 'Û', 'ß', 'Û', 'Û', 0x19, 0x09, 0x13, 0x19, + 0x0D, 0x00, 0x1A, 0x1C, 'Û', 0x19, 0x0A, 0x18, 0x04, 0x10, 'Ü', 'Ü', + 'Ü', 0x07, 0x14, 0x1A, 0x07, 'ß', 0x10, 'ß', ' ', 'Û', 'Û', 0x19, + 0x0A, 0x13, 0x19, 0x0D, 0x00, 0x1A, 0x08, 'Û', 0x19, 0x02, 0x1A, 0x1A, + 'Û', 0x18, 0x10, 0x19, 0x02, 0x07, 0x1A, 0x04, 'Û', 'ß', 0x19, 0x03, + 'Û', 'Û', 'Ü', 'Ü', 0x19, 0x0A, 0x03, 0x1A, 0x04, 'ß', 0x13, 0x19, + 0x07, 0x00, 0x1A, 0x06, 'ß', 0x19, 0x06, 0x1A, 0x0B, 'Û', 0x19, 0x0B, + 0x18, 0x10, 0x19, '%', 0x03, 0x1A, 0x0D, 'ß', 0x13, 0x19, 0x1A, 0x18, + 0x18}; + +unsigned char VMPELU0 [554] = { + 0x09, 0x10, 0x18, 0x18, 0x19, '5', 0x05, '(', ')', 'Â', '(', ')', + 0x19, 0x0E, 0x07, 'Ü', 'Ü', 'Ü', 'ß', 'Û', 0x18, 0x19, '7', 0x05, + '³', 0x19, 0x0A, 0x07, 'Ü', 'Ü', 'Ü', 'ß', 'ß', 'ß', 0x19, 0x03, + 'Û', 0x18, 0x19, '0', 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', + 0x19, 0x08, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, '5', 0x03, 0x14, + 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x10, 0x19, 0x08, 0x07, 'Û', + 0x19, 0x08, 'Û', 0x18, 0x19, '5', 0x0F, 0x14, 'ú', ' ', ' ', 0x08, + 0x10, 'Û', 'Û', 'Ý', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, + 0x19, '5', 0x08, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', 0x19, + 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, '3', 0x08, 'Ü', 0x1A, + 0x06, 'Û', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, '7', + 0x08, 'Ü', 'Û', 'Û', 'Ý', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', + 0x18, 'Ä', 0x19, '#', 'Ä', 'Â', 0x1A, 0x06, 'Ä', 0x19, 0x05, 0x08, + 0x14, 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', 'Ý', 0x19, 0x07, 0x07, 'Û', + 0x19, 0x08, 'Û', 0x18, 0x19, 0x17, 'Ä', 'Ä', 'Â', 0x1A, 0x0A, 'Ä', + 'Á', 'Ä', 0x19, 0x0C, 0x08, 'ß', 0x1A, 0x04, 'Û', 0x19, 0x08, 0x07, + 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, 0x04, 'Ú', 'Ä', 0x19, 0x07, 'Ä', + 'Ä', 'Ä', 'Â', 0x1A, 0x06, 'Ä', 'Á', 'Ä', 'Ä', 0x19, 0x19, 0x08, + 'Û', 'Û', 'Û', 0x19, 0x09, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, + 0x03, 'Ä', 'Ù', 0x19, 0x08, 'Ä', 'Ä', 'Ä', 'Á', 'Ä', 'Ä', 0x19, + '!', 0x08, 'Û', 'Û', 'Û', 0x19, 0x09, 0x07, 'Û', 0x19, 0x08, 'Û', + 0x18, 0x19, '5', 0x09, 0x1A, 0x04, 'Û', 0x19, 0x08, 0x07, 'Û', 0x19, + 0x08, 'Û', 0x18, 0x08, 0x1A, '4', 'Ä', 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x08, 0x1A, 0x04, 'Ä', ' ', 'Ä', 'Ä', 0x07, 'Û', 0x08, + 0x1A, 0x08, 'Ä', 0x07, 'Û', 0x08, 'Ä', 0x18, 0x19, '4', 0x09, 0x11, + 'Û', 0x10, 0x1A, 0x05, 'Û', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', + 0x18, 0x19, '4', 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x19, 0x07, + 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, 0x15, 0x03, 0x1A, 0x05, 'Ü', + 0x13, 0x19, 0x14, 0x10, 0x1A, 0x03, 'Û', 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x03, 'Û', 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x19, 0x0A, + 0x03, 0x1A, 0x05, 'Ü', 0x13, 0x19, 0x1F, 0x10, 0x1A, 0x03, 'Û', 0x09, + 0x13, 'ß', 0x10, 0x1A, 0x04, 'Û', 0x13, 'ß', 0x03, 0x10, 'Û', 'Û', + 0x19, 0x0F, 0x07, 'Û', 0x18, 0x19, 0x02, 0x03, 'Ü', 'Ü', 'Ü', 0x13, + 0x19, 0x05, 0x00, 0x1A, 0x05, 'Ü', 0x19, 0x06, 0x1A, 0x0C, 'Û', 0x19, + 0x0A, 0x03, 0x10, 0x1A, 0x05, 'Û', 0x09, 'Û', 'Û', 'Û', 0x03, 0x1A, + 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x13, 0x19, 0x09, 0x00, 'Ü', + 0x1A, 0x08, 'Û', 0x19, 0x02, 0x1A, 0x19, 'Û', 0x03, 0x10, 'ß', 'ß', + 'Û', 0x13, ' ', 0x11, 'ß', 'ß', 0x09, 0x10, 'Û', 'Û', 'Û', 0x03, + 0x1A, 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x13, 0x19, 0x08, 0x00, + 0x1A, 0x1C, 'Û', 0x19, 0x0A, 0x03, 0x10, 0x1A, 0x05, 'Û', 0x09, 'Û', + 'Û', 'Û', 0x03, 0x1A, 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x13, + 0x19, 0x09, 0x00, 0x1A, 0x09, 'Û', 0x19, 0x02, 0x1A, 0x19, 'Û', 0x03, + 0x10, 'ß', 'ß', 'ß', 0x09, 0x13, 'Ü', 'Ü', 'Ü', 0x10, 'Û', 'Û', + 'Û', 0x03, 0x1A, 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x03, 'ß', + 'ß', 'ß', 0x13, 0x19, 0x08, 0x00, 0x1A, 0x06, 'ß', 0x19, 0x05, 0x1A, + 0x0C, 'Û', 0x19, 0x0A, 0x03, 0x10, 0x1A, 0x0C, 'Û', 0x19, 0x0F, 0x07, + 'Û', 0x18}; + +unsigned char VMPELU1 [558] = { + 0x09, 0x10, 0x18, 0x18, 0x19, '5', 0x05, '(', ')', 'Â', '(', ')', + 0x19, 0x0E, 0x07, 'Ü', 'Ü', 'Ü', 'ß', 'Û', 0x18, 0x19, '7', 0x05, + '³', 0x19, 0x0A, 0x07, 'Ü', 'Ü', 'Ü', 'ß', 'ß', 'ß', 0x19, 0x03, + 'Û', 0x18, 0x19, '0', 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', + 0x19, 0x08, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, '5', 0x03, 0x14, + 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x10, 0x19, 0x08, 0x07, 'Û', + 0x19, 0x08, 'Û', 0x18, 0x19, '5', 0x0F, 0x14, 'ú', ' ', ' ', 0x08, + 0x10, 'Û', 'Û', 'Ý', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, + 0x19, '5', 0x08, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', 0x19, + 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, '3', 0x08, 'Ü', 0x1A, + 0x06, 'Û', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, '3', + 0x08, 'Ü', 'Ü', 'Ü', ' ', 'Ü', 'Û', 'Û', 'Ý', 0x19, 0x07, 0x07, + 'Û', 0x19, 0x08, 'Û', 0x18, 'Ä', 0x19, '#', 'Ä', 'Â', 0x1A, 0x06, + 'Ä', 0x19, 0x06, 0x08, 'ß', 0x1A, 0x04, 'Û', 'Ý', 0x19, 0x07, 0x07, + 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, 0x17, 'Ä', 'Ä', 'Â', 0x1A, 0x0A, + 'Ä', 'Á', 'Ä', 0x19, 0x0E, 0x08, 0x1A, 0x03, 'Û', 0x19, 0x08, 0x07, + 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, 0x04, 'Ú', 'Ä', 0x19, 0x07, 'Ä', + 'Ä', 'Ä', 'Â', 0x1A, 0x06, 'Ä', 'Á', 'Ä', 'Ä', 0x19, 0x19, 0x08, + 'Û', 'Û', 'Û', 0x19, 0x09, 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, + 0x03, 'Ä', 'Ù', 0x19, 0x08, 'Ä', 'Ä', 'Ä', 'Á', 'Ä', 'Ä', 0x19, + '!', 0x08, 'Û', 'Û', 'Û', 0x19, 0x09, 0x07, 'Û', 0x19, 0x08, 'Û', + 0x18, 0x19, '5', 0x09, 0x1A, 0x04, 'Û', 0x19, 0x08, 0x07, 'Û', 0x19, + 0x08, 'Û', 0x18, 0x08, 0x1A, '4', 'Ä', 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x08, 0x1A, 0x04, 'Ä', ' ', 'Ä', 'Ä', 0x07, 'Û', 0x08, + 0x1A, 0x08, 'Ä', 0x07, 'Û', 0x08, 'Ä', 0x18, 0x19, '4', 0x09, 0x11, + 'Û', 0x10, 0x1A, 0x05, 'Û', 0x19, 0x07, 0x07, 'Û', 0x19, 0x08, 'Û', + 0x18, 0x19, '4', 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x19, 0x07, + 0x07, 'Û', 0x19, 0x08, 'Û', 0x18, 0x19, 0x15, 0x03, 0x1A, 0x05, 'Ü', + 0x13, 0x19, 0x14, 0x10, 0x1A, 0x03, 'Û', 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x03, 'Û', 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x19, 0x0A, + 0x03, 0x1A, 0x05, 'Ü', 0x13, 0x19, 0x1F, 0x10, 0x1A, 0x03, 'Û', 0x09, + 0x13, 'ß', 0x10, 0x1A, 0x04, 'Û', 0x13, 'ß', 0x03, 0x10, 'Û', 'Û', + 0x19, 0x0F, 0x07, 'Û', 0x18, 0x19, 0x02, 0x03, 'Ü', 'Ü', 'Ü', 0x13, + 0x19, 0x04, 0x00, 0x1A, 0x06, 'Ü', 0x19, 0x06, 0x1A, 0x0C, 'Û', 0x19, + 0x0A, 0x03, 0x10, 0x1A, 0x05, 'Û', 0x09, 'Û', 'Û', 'Û', 0x03, 0x1A, + 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x13, 0x19, 0x08, 0x00, 'Ü', + 0x1A, 0x08, 'Û', 'Ý', 0x19, 0x02, 'Þ', 0x1A, 0x18, 'Û', 0x03, 0x10, + 'ß', 'ß', 'Û', 0x13, ' ', 0x11, 'ß', 'ß', 0x09, 0x10, 'Û', 'Û', + 'Û', 0x03, 0x1A, 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18, 0x13, 0x19, + 0x08, 0x00, 0x1A, 0x1C, 'Û', 0x19, 0x0A, 0x03, 0x10, 0x1A, 0x05, 'Û', + 0x09, 'Û', 'Û', 'Û', 0x03, 0x1A, 0x03, 'Û', 0x19, 0x0F, 0x07, 'Û', + 0x18, 0x13, 0x19, 0x08, 0x00, 0x1A, 0x09, 'Û', 'Ý', 0x19, 0x02, 'Þ', + 0x1A, 0x18, 'Û', 0x03, 0x10, 'ß', 'ß', 'ß', 0x09, 0x13, 'Ü', 'Ü', + 'Ü', 0x10, 'Û', 'Û', 'Û', 0x03, 0x1A, 0x03, 'Û', 0x19, 0x0F, 0x07, + 'Û', 0x18, 0x03, 'ß', 'ß', 'ß', 0x13, 0x19, 0x06, 0x00, 0x1A, 0x06, + 'ß', 0x19, 0x07, 0x1A, 0x0C, 'Û', 0x19, 0x0A, 0x03, 0x10, 0x1A, 0x0C, + 'Û', 0x19, 0x0F, 0x07, 'Û', 0x18}; + + +unsigned char SYBER0 [508] = { + 0x08, 0x10, 0x19, '!', 0x07, 'Ú', 0x1A, 0x0A, 'Ä', '¿', 0x18, 0x19, + 0x1D, 'Ú', 'Ä', 'Ä', 'Ä', '³', ' ', 's', ' ', 'y', ' ', 'b', + ' ', 'e', ' ', 'r', ' ', 'Ã', 0x1A, 0x04, 'Ä', '¿', 0x18, 0x19, + 0x1A, 0x08, 'Ü', 'Û', 'Û', 0x07, '³', 0x03, '°', '°', '°', 0x07, + 'À', 0x1A, 0x0A, 'Ä', 'Ù', 0x03, 0x1A, 0x04, '°', 0x07, '³', 0x08, + 'Ü', 0x18, 0x19, 0x18, 0x1A, 0x04, 'Û', 'ß', 0x03, 0x1A, 0x13, '°', + 0x08, 'ß', 'ß', 0x1A, 0x03, 'Û', 'Ü', 0x18, 0x19, 0x17, 0x1A, 0x05, + 'Û', 'ß', 0x07, 0x1A, 0x11, 'Ä', 0x08, 'ß', 0x1A, 0x08, 'Û', 'Ü', + 0x18, 0x19, 0x15, 'Ü', 0x1A, 0x03, 'Û', 'ß', 0x19, 0x04, 0x07, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x00, 'ß', 0x10, 0x19, 0x08, 0x08, 'ß', 0x1A, 0x05, 'Û', 'Ü', 0x18, + 0x19, 0x13, 'Ü', 0x1A, 0x04, 'Û', 'ß', 0x19, 0x04, 0x07, 'Þ', 0x17, + ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', ' ', ' ', '(', 0x02, + '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x09, 0x08, 'ß', + 0x1A, 0x05, 'Û', 'Ü', 0x18, 0x19, 0x11, 'Ü', 0x1A, 0x04, 'Û', 'ß', + 0x19, 0x06, 0x17, 0x19, 0x05, 0x04, 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, + 0x0A, 0x08, 'Ü', 0x1A, 0x05, 'Û', 'ß', 0x18, 0x19, 0x12, 'ß', 0x1A, + 0x04, 'Û', 'Ü', 0x19, 0x05, 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, + 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', + ' ', 0x0C, '(', ' ', 0x10, 0x19, 0x08, 0x08, 'Ü', 0x1A, 0x05, 'Û', + 'ß', 0x18, 0x19, 0x14, 'ß', 0x1A, 0x04, 'Û', 'Ü', 0x19, 0x03, 0x07, + 'Þ', 0x17, ' ', ' ', 0x00, 'ß', 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', + 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', ' ', ' ', 0x07, 0x10, + 'Ý', 0x19, 0x06, 0x08, 'Ü', 0x1A, 0x05, 'Û', 'ß', 0x18, 0x19, 0x16, + 0x1A, 0x05, 'Û', 'Ü', 'Ü', 'Ü', 0x17, '°', '°', '°', 0x1A, 0x06, + '±', 0x1A, 0x03, '°', 0x10, 0x1A, 0x05, 'Ü', 0x1A, 0x05, 'Û', 'ß', + 0x18, 0x19, 0x16, 'Þ', 'Û', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', + 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 0x1A, + 0x03, 'Û', 'ß', 0x18, 0x19, 0x17, 0x17, 0x1A, 0x05, 'Û', '±', 0x1A, + 0x03, '°', '±', '±', '±', '²', '²', '²', 0x1A, 0x05, '°', 0x1A, + 0x07, 'Û', 0x10, 'Û', 0x18, 0x19, 0x16, 'Þ', 0x17, 0x1A, 0x04, 'Û', + '°', '°', '°', 'Û', '°', '°', '±', '±', '²', '²', '²', '±', + 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', 0x18, 0x10, 0x19, 0x16, 0x17, 0x1A, + 0x0B, 'Û', '±', 0x1A, 0x04, '²', 0x1A, 0x0E, 'Û', 0x10, 'Ý', 0x18, + 0x19, 0x15, 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', '°', '±', 0x1A, + 0x0F, 'Û', 0x10, 'Û', 0x18, 0x19, 0x15, 0x17, 0x1A, 0x0C, 'Û', '±', + '²', '²', 0x1A, 0x12, 'Û', 0x18, 0x10, 0x19, 0x14, 'Þ', 0x17, 0x1A, + '!', 'Û', 0x10, 'Ý', 0x18, 0x19, 0x14, 0x17, 0x1A, 0x22, 'Û', 0x18, + 0x10, 0x19, 0x15, 0x1A, ' ', 'Û', 0x18, 0x19, 0x16, 'ß', 'ß', 0x1A, + 0x1B, 'Û', 'ß', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', 0x19, 0x04, 0x1A, + 0x07, 'Û', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', 0x19, 0x04, 0x1A, 0x07, + 'Û', 0x18, 0x19, 0x0A, 'Ü', 0x1A, 0x18, 'Û', 0x19, 0x04, 0x1A, 0x15, + 'Û', 'Ü', 0x18, 0x18}; + +unsigned char SYBER1 [453] = { + 0x08, 0x10, 0x18, 0x18, 0x19, '!', 0x07, 'Ú', 0x1A, 0x0A, 'Ä', '¿', + 0x18, 0x19, 0x1D, 'Ú', 'Ä', 'Ä', 'Ä', '³', ' ', 's', ' ', 'y', + ' ', 'b', ' ', 'e', ' ', 'r', ' ', 'Ã', 0x1A, 0x04, 'Ä', '¿', + 0x18, 0x19, 0x19, 0x08, 'Ü', 'Ü', 'Û', 'Û', 0x07, '³', 0x03, '°', + '°', '°', 0x07, 'À', 0x1A, 0x0A, 'Ä', 'Ù', 0x03, 0x1A, 0x04, '°', + 0x07, '³', 0x08, 'Ü', 0x18, 0x19, 0x15, 'Ü', 0x1A, 0x06, 'Û', 'ß', + 0x03, 0x1A, 0x13, '°', 0x08, 'ß', 'ß', 0x1A, 0x03, 'Û', 'Ü', 0x18, + 0x19, 0x11, 'Ü', 'Ü', 0x1A, 0x06, 'Û', 0x1A, 0x03, 'ß', 0x07, 0x1A, + 0x11, 'Ä', 0x08, 'ß', 0x1A, 0x0A, 'Û', 'Ü', 'Ü', 'Ü', 0x18, 0x19, + 0x0D, 'Ü', 'Ü', 0x1A, 0x06, 'Û', 'ß', 0x19, 0x07, 0x17, 0x19, 0x05, + 0x04, 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, 0x09, 0x08, 0x1A, 0x04, 'ß', + 0x1A, 0x05, 'Û', 'Ü', 'Ü', 0x18, 0x19, 0x0F, 'ß', 'ß', 0x1A, 0x04, + 'Û', 'Ü', 'Ü', 0x19, 0x06, 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, + 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', + ' ', 0x0C, '(', ' ', 0x10, 0x19, 0x0B, 0x08, 'Ü', 'Ü', 0x1A, 0x04, + 'Û', 'ß', 'ß', 0x18, 0x19, 0x13, 'ß', 0x1A, 0x04, 'Û', 'Ü', 0x19, + 0x04, 0x07, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', 0x06, 'ß', 0x0F, 'ß', + 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', ' ', ' ', + 0x07, 0x10, 'Ý', 0x19, 0x07, 0x08, 'Ü', 'Ü', 0x1A, 0x03, 'Û', 'ß', + 'ß', 'ß', 0x18, 0x19, 0x15, 'ß', 0x1A, 0x05, 'Û', 'Ü', 'Ü', 'Ü', + 0x17, '°', '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x10, 0x1A, + 0x06, 'Ü', 0x1A, 0x03, 'Û', 'ß', 0x18, 0x19, 0x16, 'Þ', 'Û', 0x17, + 0x1A, 0x06, 'Û', '°', '°', '°', 0x1A, 0x04, '±', '²', 0x1A, 0x04, + '°', 0x1A, 0x05, 'Û', 0x10, 0x1A, 0x03, 'Û', 0x18, 0x19, 0x17, 0x17, + 0x1A, 0x05, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', '²', + '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 'Û', 0x18, 0x19, 0x16, + 'Þ', 0x17, 0x1A, 0x04, 'Û', '°', '°', '°', 'Û', '°', '°', '±', + '±', '²', '²', '²', '±', 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', 0x18, + 0x10, 0x19, 0x16, 0x17, 0x1A, 0x0B, 'Û', '±', 0x1A, 0x04, '²', 0x1A, + 0x0E, 'Û', 0x10, 'Ý', 0x18, 0x19, 0x15, 0x17, 0x1A, 0x0C, 'Û', '±', + '²', '²', '°', '±', 0x1A, 0x0F, 'Û', 0x10, 'Û', 0x18, 0x19, 0x15, + 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', 0x1A, 0x12, 'Û', 0x18, 0x10, + 0x19, 0x14, 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, 'Ý', 0x18, 0x19, 0x14, + 0x17, 0x1A, 0x22, 'Û', 0x18, 0x10, 0x19, 0x15, 0x1A, ' ', 'Û', 0x18, + 0x19, 0x16, 'ß', 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x18, 0x19, 0x1A, 0x1A, + 0x09, 'Û', 0x19, 0x04, 0x1A, 0x07, 'Û', 0x18, 0x19, 0x1A, 0x1A, 0x09, + 'Û', 0x19, 0x04, 0x1A, 0x07, 'Û', 0x18, 0x19, 0x0A, 'Ü', 0x1A, 0x18, + 'Û', 0x19, 0x04, 0x1A, 0x15, 'Û', 'Ü', 0x18, 0x18}; + +unsigned char SYBER2 [387] = { + 0x08, 0x10, 0x18, 0x18, 0x18, 0x18, 0x19, 0x1F, 0x07, 'Ú', 0x1A, 0x0A, + 'Ä', '¿', 0x18, 0x19, 0x1B, 'Ú', 'Ä', 'Ä', 'Ä', '³', ' ', 's', + ' ', 'y', ' ', 'b', ' ', 'e', ' ', 'r', ' ', 'Ã', 0x1A, 0x04, + 'Ä', '¿', 0x18, 0x19, 0x17, 0x08, 'Ü', 'Ü', 'Û', 'Û', 0x07, '³', + 0x03, '°', '°', '°', 0x07, 'À', 0x1A, 0x0A, 'Ä', 'Ù', 0x03, 0x1A, + 0x04, '°', 0x07, '³', 0x08, 'Ü', 0x18, 0x19, 0x10, 0x1A, 0x03, 'Ü', + 0x1A, 0x06, 'Û', 'ß', 0x03, 0x1A, 0x13, '°', 0x08, 'ß', 'ß', 0x1A, + 0x03, 'Û', 0x1A, 0x03, 'Ü', 0x18, 0x19, 0x0A, 'Ü', 'Ü', 'Ü', 0x1A, + 0x07, 'Û', 0x1A, 0x06, 'ß', 0x07, 0x1A, 0x11, 'Ä', 0x08, 'ß', 0x1A, + 0x0E, 'Û', 'Ü', 'Ü', 0x18, 0x19, 0x0D, 'ß', 'ß', 0x1A, 0x06, 'Û', + 'Ü', 'Ü', 'Ü', 0x19, 0x05, 0x07, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', + 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', + 0x00, 'ß', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x07, 0x08, 'Ü', 'Ü', + 0x1A, 0x09, 'Û', 'ß', 0x18, 0x19, 0x12, 'ß', 'ß', 0x1A, 0x07, 'Û', + 'Ü', 'Ü', 'Ü', 0x17, '°', '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, + '°', 0x10, 0x1A, 0x03, 'Ü', 0x1A, 0x09, 'Û', 'ß', 'ß', 'ß', 0x18, + 0x19, 0x15, 'ß', 'ß', 'Û', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', + 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x04, 'Û', 0x10, 0x1A, + 0x04, 'Û', 0x18, 0x19, 0x17, 0x17, 0x1A, 0x05, 'Û', '±', 0x1A, 0x03, + '°', '±', '±', '±', '²', '²', '²', 0x1A, 0x05, '°', 0x1A, 0x07, + 'Û', 0x10, 'Û', 0x18, 0x19, 0x16, 'Þ', 0x17, 0x1A, 0x04, 'Û', '°', + '°', '°', 'Û', '°', '°', '±', '±', '²', '²', '²', '±', 0x1A, + 0x04, '°', 0x1A, 0x09, 'Û', 0x18, 0x10, 0x19, 0x16, 0x17, 0x1A, 0x0B, + 'Û', '±', 0x1A, 0x04, '²', 0x1A, 0x0E, 'Û', 0x10, 'Ý', 0x18, 0x19, + 0x15, 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', '°', '±', 0x1A, 0x0F, + 'Û', 0x10, 'Û', 0x18, 0x19, 0x15, 0x17, 0x1A, 0x0C, 'Û', '±', '²', + '²', 0x1A, 0x12, 'Û', 0x18, 0x10, 0x19, 0x14, 'Þ', 0x17, 0x1A, '!', + 'Û', 0x10, 'Ý', 0x18, 0x19, 0x14, 0x17, 0x1A, 0x22, 'Û', 0x18, 0x10, + 0x19, 0x15, 0x1A, ' ', 'Û', 0x18, 0x19, 0x16, 'ß', 'ß', 0x1A, 0x1B, + 'Û', 'ß', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', 0x19, 0x04, 0x1A, 0x07, + 'Û', 0x18, 0x19, 0x1A, 0x1A, 0x09, 'Û', 0x19, 0x04, 0x1A, 0x07, 'Û', + 0x18, 0x19, 0x0A, 'Ü', 0x1A, 0x18, 'Û', 0x19, 0x04, 0x1A, 0x15, 'Û', + 'Ü', 0x18, 0x18}; + +unsigned char P_SPR [159-31] = { + 0x0F, 0x10, 0x19, 0x02, 0x08, '(', ')', 'Ñ', '(', ')', 0x18, 0x19, + 0x04, 0x04, '³', 0x18, 0x19, 0x02, 'Þ', 0x1A, 0x05, 'Û', 'Ü', 'Ü', + 'Ü', 0x18, 0x19, 0x02, 0x0E, 0x14, 'Ü', 'Ü', 'Ü', 0x01, 'Ü', 'Ü', + 0x18, 0x10, ' ', ' ', 0x07, 'Þ', 'Û', 'Û', 0x01, 'Û', 'Û', 0x0F, + 0x11, 'ú', 0x18, 0x10, ' ', ' ', 0x07, 'Û', 'Û', 'Û', 0x11, 'Û', + 'Ü', 'Ü', 0x18, 0x10, ' ', ' ', 0x1A, 0x06, 'Û', 'Ü', 0x18, ' ', + ' ', 'Þ', 'Û', 'Û', 'Û', 'ß', 0x18, ' ', ' ', 'Þ', 'Û', 'Û', + 0x1A, 0x03, 'Ü', 0x04, 0x17, 'ß', 0x18, 0x10, 0x19, 0x02, 0x07, 0x1A, + 0x04, 'Û', 'ß', 0x18, 0x19, 0x03, 'Û', 'Û', 'Û', 0x18, 0x04, 'Ü', + 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, 'ß', 0x18, 0x10, ' ', ' ', 0x1A, + 0x06, 'Û', 0x18, ' ', ' ', 0x1A, 0x06, 'Û' /*, 0x18, 0x04, 'Ü', 'Ü', + 0x07, 0x14, 0x1A, 0x06, 'ß', 0x18, 0x10, ' ', ' ', 0x1A, 0x06, 'Û', + 0x18, ' ', ' ', 0x1A, 0x06, 'Û', 0x18, ' ', ' ', 'ß', 0x1A, 0x04, + 'Û', 'ß', 0x18*/}; + +unsigned char P_SPR1 [161-31] = { + 0x0F, 0x10, 0x19, 0x02, 0x08, '(', ')', 'Ñ', '(', ')', 0x18, 0x19, + 0x04, 0x04, '³', 0x18, 0x19, 0x02, 'Þ', 0x1A, 0x05, 'Û', 'Ü', 'Ü', + 'Ü', 0x18, 0x19, 0x02, 0x0E, 0x14, 'Ü', 'Ü', 'Ü', 0x01, 'Ü', 'Ü', + 0x18, 0x10, ' ', ' ', 0x07, 'Þ', 'Û', 'Û', 0x01, 'Û', 'Û', 0x0F, + 0x11, 'ú', 0x18, 0x10, ' ', ' ', 0x07, 'Û', 'Û', 'Û', 0x11, 'Û', + 'Ü', 'Ü', 0x18, 0x10, ' ', ' ', 0x1A, 0x06, 'Û', 'Ü', 0x18, ' ', + ' ', 'Þ', 'Û', 'Û', 'Û', 'ß', 0x18, ' ', ' ', 'Þ', 'Û', 'Û', + 0x14, 0x1A, 0x03, 'Û', 0x10, 'ß', 0x18, 0x19, 0x02, 0x1A, 0x03, 'Û', + 0x00, 0x17, 'Ü', 0x18, 0x10, 0x19, 0x03, 0x07, 'Û', 'Û', 'Û', 0x18, + 0x04, 'Ü', 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, 'ß', 0x18, 0x10, ' ', + ' ', 0x1A, 0x06, 'Û', 0x18, ' ', ' ', 0x1A, 0x06, 'Û' /*, 0x18, 0x04, + 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x06, 'ß', 0x18, 0x10, ' ', ' ', 0x1A, + 0x06, 'Û', 0x18, ' ', ' ', 0x1A, 0x06, 'Û', 0x18, ' ', ' ', 'ß', + 0x1A, 0x04, 'Û', 'ß', 0x18*/}; + +unsigned char MP_SPR [155-27] = { + 0x0F, 0x10, 0x19, 0x04, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, + 0x06, '³', 0x18, 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', 0x18, + 0x19, 0x04, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x18, 0x10, + 0x19, 0x04, 0x0F, 0x14, 'ú', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', + 0x18, 0x19, 0x04, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', 0x18, + 0x19, 0x02, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x06, 'Ü', 'Û', 'Û', + 'Ý', 0x18, 0x19, 0x02, 0x14, 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', 'Ý', + 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 0x18, 0x19, 0x05, 'Û', 'Û', + 'Û', 0x18, 0x19, 0x05, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 0x09, 0x1A, + 0x04, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, + 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û' /*, 0x18, 0x19, 0x03, 0x11, + 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18*/}; + +unsigned char MP_SPR1 [156-27] = { + 0x0F, 0x10, 0x19, 0x04, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, + 0x06, '³', 0x18, 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', 0x18, + 0x19, 0x04, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x18, 0x10, + 0x19, 0x04, 0x0F, 0x14, 'ú', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', + 0x18, 0x19, 0x04, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', 0x18, + 0x19, 0x02, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', 'Ü', 'Ü', + ' ', 'Ü', 'Û', 'Û', 'Ý', 0x18, 0x19, 0x02, 'ß', 0x1A, 0x05, 'Û', + 'Ý', 0x18, 0x19, 0x04, 'ß', 0x1A, 0x03, 'Û', 0x18, 0x19, 0x05, 'Û', + 'Û', 'Û', 0x18, 0x19, 0x05, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 0x09, + 0x1A, 0x04, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', + 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û'/*, 0x18, 0x19, 0x03, + 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, + 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18*/}; + +unsigned char MP_SPR2 [156-27] = { + 0x0F, 0x10, 0x19, 0x04, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, + 0x06, '³', 0x18, 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', 0x18, + 0x19, 0x04, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x18, 0x10, + 0x19, 0x04, 0x0F, 0x14, 'þ', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', + 0x18, 0x19, 0x04, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', 0x18, + 0x19, 0x02, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x07, 'Û', 'Û', 'Ý', + 0x18, 0x19, 0x02, 0x14, 'Ü', 0x10, 'Ü', 'Ü', 'Ü', 'Û', 'Û', 'Û', + 'Ý', 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 0x18, 0x19, 0x05, 'Û', + 'Û', 'Û', 0x18, 0x19, 0x05, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 0x09, + 0x1A, 0x04, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', + 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û' /*, 0x18, 0x19, 0x03, + 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, + 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18*/}; + +unsigned char SINIPELU [485] = { + 0x0F, 0x10, 0x19, 0x07, 0x08, '±', 0x07, '°', '±', '²', 0x08, 'Û', + '²', 0x18, 0x19, 0x05, '²', 0x07, '²', 'Û', '±', 0x08, '²', 0x07, + '°', '±', '°', '±', 0x08, '±', '°', 0x07, '°', '±', 'Û', 0x08, + '²', '±', 0x19, 0x0D, '°', 0x07, '±', 0x08, '°', 0x18, 0x19, 0x03, + '±', 0x07, '°', '±', 'Û', 0x08, '±', '°', 0x19, 0x02, '°', 0x07, + '°', '±', 'Û', 0x08, '²', '±', 0x07, '°', '±', 'Û', 0x19, 0x0D, + 0x08, '²', 'Û', 0x07, 'Û', 0x18, 0x19, 0x03, '±', '²', 0x08, '²', + ' ', '(', ')', 'Ñ', '(', ')', 0x19, 0x06, '±', 0x07, '°', '±', + 0x19, 0x07, 0x08, '±', 0x07, '±', 0x08, '±', '°', '°', 0x07, '°', + '±', '±', 0x18, ' ', ' ', 0x08, '²', 0x07, '±', '²', 'Û', 0x19, + 0x03, 0x02, '³', 0x19, 0x08, 0x07, '°', '±', 'Û', 0x08, '°', 0x19, + 0x06, 0x07, '±', 0x08, 'Û', 0x07, '°', 0x08, '±', 0x18, ' ', ' ', + 'Û', 0x07, '°', '±', '²', ' ', ' ', 0x02, 'Þ', 0x1A, 0x05, 'Û', + 'Ü', 'Ü', 'Ü', 0x19, 0x02, 0x08, 'Û', 0x07, '°', '±', 0x19, 0x06, + '±', 'Û', 0x08, 'Û', 0x07, '±', 0x18, ' ', ' ', '²', '±', 0x08, + '±', '²', ' ', ' ', 0x07, 0x12, 'Ü', 'Ü', 'Ü', 0x02, 0x10, 'ß', + 'ß', 0x19, 0x06, 0x08, '±', 0x07, '°', '±', 'Û', ' ', ' ', '±', + '°', 0x08, '±', ' ', ' ', '±', 0x07, '°', '±', '°', 0x18, ' ', + 0x08, '°', 0x07, '±', '°', 0x08, '°', ' ', ' ', 0x09, 'Þ', 'Û', + 'Û', ' ', ' ', 0x0F, 'ú', 0x19, 0x06, 0x07, '°', '±', 'Û', 0x19, + 0x02, '°', 0x08, 'Û', 0x07, '±', 0x18, ' ', 0x08, '°', 0x07, '±', + 0x08, '²', 'Û', ' ', ' ', 0x09, 0x1A, 0x03, 'Û', 'Ü', 'Ü', 0x19, + 0x06, 0x08, '²', '°', 0x07, '±', '±', ' ', ' ', 0x08, '°', 0x07, + '°', '±', 0x18, ' ', '°', '±', 'Û', 0x08, '°', ' ', ' ', 0x09, + 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x04, 0x08, '°', 0x07, '°', '±', '°', + 0x18, 0x08, '°', 0x07, '°', '±', 'Û', 0x19, 0x02, 0x09, 'Þ', 'Û', + 'Û', 'Ü', 0x19, 0x07, 0x08, '±', 0x07, '°', '±', 'Û', 0x08, '°', + 0x18, '°', 0x07, '°', '±', 'Û', 0x19, 0x02, 0x09, 'Þ', 0x1A, 0x04, + 'Û', 'Ü', 0x14, 'Ü', 0x10, 0x19, 0x03, 0x08, '²', 0x07, '°', '±', + 0x08, '°', '°', 0x18, 0x07, '°', '±', 'Û', 0x08, '²', 0x19, 0x03, + 0x09, 0x1A, 0x04, 'Û', 'ß', 0x19, 0x03, 0x08, '°', 0x07, '°', '±', + 0x08, '±', '±', 0x18, '±', 0x07, '°', '±', 'Û', 0x08, 'Û', 0x19, + 0x03, 0x09, 'Û', 'Û', 'Û', 0x19, 0x04, 0x07, '±', '²', 'Û', 0x08, + '±', '°', '°', 0x18, ' ', '²', 0x07, '°', '±', 'Û', 0x19, 0x03, + 0x09, 0x12, 'Û', 'Û', 'Û', 0x10, 0x19, 0x04, 0x08, '°', '±', 0x07, + '±', '²', 'Û', 0x18, ' ', '°', '±', 'Û', 0x08, '²', 'Û', 0x19, + 0x09, 0x07, '°', '±', 'Û', '°', '°', 0x08, '±', '°', 0x18, 0x19, + 0x02, 0x07, '°', '±', 'Û', 0x08, '°', '±', 0x07, '°', '°', '±', + 'Û', 0x08, 'Û', 0x07, '°', '°', '²', 'Û', 0x08, '±', '²', 0x18, + 0x19, 0x04, 0x07, '°', '±', 'Û', '°', 0x08, '±', '²', 0x07, '°', + '±', 'Û', 0x08, '°', 0x18}; + +unsigned char JINJANG [459] = { + 0x0F, 0x10, 0x19, 0x08, 0x08, '±', 0x07, '°', '±', '²', 0x08, 'Û', + '²', 0x18, 0x19, 0x06, '²', 0x07, '²', 'Û', '±', 0x08, '²', 0x07, + '°', '±', '°', '±', 0x08, '±', '°', 0x07, '°', '±', 'Û', 0x08, + '²', '±', 0x19, 0x0D, '°', 0x07, '±', 0x08, '°', 0x18, 0x19, 0x04, + '±', 0x07, '°', '±', 'Û', 0x08, '±', '°', 0x19, 0x02, '°', 0x07, + '°', '±', 'Û', 0x08, '²', '±', 0x07, '°', '±', 'Û', 0x19, 0x0D, + 0x08, '²', 'Û', 0x07, 'Û', 0x18, 0x19, 0x04, '±', '²', 0x08, '²', + 0x19, 0x0C, '±', 0x07, '°', '±', 0x19, 0x07, 0x08, '±', 0x07, '±', + 0x08, '±', '°', '°', 0x07, '°', '±', '±', 0x18, 0x19, 0x02, 0x08, + '²', 0x07, '±', '²', 'Û', 0x19, 0x0D, '°', '±', 'Û', 0x08, '°', + 0x19, 0x06, 0x07, '±', 0x08, 'Û', 0x07, '°', 0x08, '±', 0x18, 0x19, + 0x02, 'Û', 0x07, '°', '±', '²', 0x19, 0x0E, 0x08, 'Û', 0x07, '°', + '±', 0x19, 0x06, '±', 'Û', 0x08, 'Û', 0x07, '±', 0x18, 0x19, 0x02, + '²', '±', 0x08, '±', '²', ' ', ' ', 0x07, 0x1A, 0x07, 'Ü', 0x19, + 0x03, 0x08, '±', 0x07, '°', '±', 'Û', ' ', ' ', '±', '°', 0x08, + '±', ' ', ' ', '±', 0x07, '°', '±', '°', 0x18, ' ', ' ', 0x08, + '°', 0x07, '±', '°', 0x08, '°', ' ', 0x07, 'Ü', 'ß', 0x19, 0x07, + 'ß', 'Ü', ' ', ' ', '°', '±', 'Û', 0x19, 0x02, '°', 0x08, 'Û', + 0x07, '±', 0x18, ' ', ' ', 0x08, '°', 0x07, '±', 0x08, '²', 'Û', + ' ', 0x07, 'Û', 0x19, 0x06, 'Û', 'Û', ' ', 'Û', ' ', ' ', 0x08, + '²', '°', 0x07, '±', '±', ' ', ' ', 0x08, '°', 0x07, '°', '±', + 0x18, ' ', ' ', '°', '±', 'Û', 0x08, '°', ' ', 0x07, 'Û', 'Ü', + 'Û', 'Û', 'Û', 'Ü', 0x19, 0x04, 'Û', ' ', ' ', 0x08, '°', 0x07, + '°', '±', '°', 0x18, ' ', 0x08, '°', 0x07, '°', '±', 'Û', ' ', + ' ', 'Û', 'Û', 'ß', 'ß', 'Û', 'Û', 'Û', 'Ü', 'Ü', 'Ü', 'Û', + 'Û', ' ', 0x08, '±', 0x07, '°', '±', 'Û', 0x08, '°', 0x18, ' ', + '°', 0x07, '°', '±', 'Û', ' ', ' ', 'Û', 'Û', 'Ü', 'Ü', 0x1A, + 0x07, 'Û', ' ', 0x08, '²', 0x07, '°', '±', 0x08, '°', '°', 0x18, + ' ', 0x07, '°', '±', 'Û', 0x08, '²', 0x19, 0x02, 0x07, 'ß', 0x1A, + 0x07, 'Û', 'ß', ' ', 0x08, '°', 0x07, '°', '±', 0x08, '±', '±', + 0x18, ' ', '±', 0x07, '°', '±', 'Û', 0x08, 'Û', 0x19, 0x0B, 0x07, + '±', '²', 'Û', 0x08, '±', '°', '°', 0x18, ' ', ' ', '²', 0x07, + '°', '±', 'Û', 0x19, 0x0B, 0x08, '°', '±', 0x07, '±', '²', 'Û', + 0x18, ' ', ' ', '°', '±', 'Û', 0x08, '²', 'Û', 0x19, 0x09, 0x07, + '°', '±', 'Û', '°', '°', 0x08, '±', '°', 0x18, 0x19, 0x03, 0x07, + '°', '±', 'Û', 0x08, '°', '±', 0x07, '°', '°', '±', 'Û', 0x08, + 'Û', 0x07, '°', '°', '²', 'Û', 0x08, '±', '²', 0x18, 0x19, 0x05, + 0x07, '°', '±', 'Û', '°', 0x08, '±', '²', 0x07, '°', '±', 'Û', + 0x08, '°', 0x18}; + + +unsigned char WINNUKE0 [917] = { + 0x01, 0x10, 0x1A, 'N', 'ý', 0x18, 0x1A, 'N', 'ý', 0x18, 0x1A, 0x06, + 'ý', 0x03, 'Ü', 'Ü', 0x1A, 0x1C, 'Û', 'Ü', 'Ü', 0x01, 0x1A, '&', + 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, 0x1A, ' ', 'ý', 0x03, + 'Û', 0x01, 0x1A, '%', 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, + 0x1A, 0x06, 'ý', 0x06, 'Ü', 0x1A, 0x13, 'Û', 'Ü', 0x01, 0x1A, 0x03, + 'ý', 0x03, 'Û', 0x01, 0x1A, '%', 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, + 'Û', 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, 0x07, 'Û', 0x07, 0x16, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x07, 0x16, 'Ü', 0x06, 0x10, 0x1A, 0x03, 'Û', 0x01, 'ý', 'ý', 'ý', + 0x03, 'Û', 0x01, 0x1A, '%', 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', + 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, 0x06, 'Û', 0x07, 0x16, 'Þ', 0x17, + ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', ' ', ' ', '(', 0x02, + '-', 0x04, ')', ' ', ' ', 0x07, 0x16, 'Ý', 0x06, 0x10, 'Û', 'Û', + 'Û', 0x01, 'ý', 'ý', 'ý', 0x03, 'Û', 0x01, 0x1A, '%', 'ý', 0x18, + 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, 0x06, + 'Û', 0x17, 0x19, 0x05, 0x04, 'ú', 'ú', 0x19, 0x05, 0x06, 0x10, 'Û', + 'Û', 'Û', 0x01, 'ý', 'ý', 'ý', 0x03, 'Û', 0x01, 0x1A, '%', 'ý', + 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, + 0x06, 'Û', 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, 'Ü', 0x06, 'Ü', + 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', ' ', 0x0C, '(', + ' ', 0x06, 0x10, 'Û', 'Û', 'Û', 0x01, 'ý', 'ý', 'ý', 0x03, 'Û', + 0x01, 0x1A, '%', 'ý', 0x18, 0x03, 0x1A, 0x05, 'ß', 0x01, 0x1A, 0x06, + 'ý', 0x06, 0x1A, 0x06, 'Û', 0x07, 0x16, 'Þ', 0x17, ' ', ' ', 0x00, + 'ß', 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, + 'ß', 0x00, 'ß', ' ', ' ', 0x07, 0x16, 'Ý', 0x06, 0x10, 'Û', 'Û', + 'Û', 0x01, 0x1A, 0x03, 'ý', 0x03, 0x1A, '%', 'ß', 0x18, 0x01, 0x1A, + 0x0C, 'ý', 0x06, 'Û', 'Û', 0x08, 0x16, 0x1A, 0x04, 'Ü', 0x17, '°', + '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x16, 'Ü', 'Ü', 'Ü', + 0x10, 'Ü', 'Ü', 'Ü', 0x01, 0x1A, '&', 'ý', 0x18, 0x05, 0x1A, 0x0B, + 'ß', 0x08, 0x15, 'Ü', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', 0x1A, + 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 0x1A, 0x04, + 'Û', 0x15, 0x1A, 0x03, 'Ü', 0x05, 0x10, 0x1A, 0x1D, 'ß', 0x18, 0x19, + 0x09, 0x08, 'Ü', 0x17, 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', + '±', '±', '²', '²', '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, + 0x1A, 0x0D, 'Û', 0x1A, 0x03, 'Ü', 0x18, 0x19, 0x07, 'Ü', 0x17, 0x1A, + 0x07, 'Û', '°', '°', '°', 'Û', '°', '°', '±', '±', '²', '²', + '²', '±', 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', 0x10, 0x1A, 0x15, 'Û', + 0x03, 'Ü', 0x18, 0x19, 0x05, 0x08, 'Ü', 0x17, 0x1A, 0x0F, 'Û', '±', + 0x1A, 0x04, '²', 0x1A, 0x0D, 'Û', 0x10, 0x1A, 0x08, 'ß', 0x1A, 0x08, + 'Û', 0x13, 'Ü', 'Ü', 'Ü', 0x03, 0x10, 'Û', 'Û', 'Û', 0x18, ' ', + 0x06, 'Ü', 'Û', 'Û', 'Û', 0x08, 0x1A, '%', 'Û', 0x19, 0x12, 0x03, + 0x1A, 0x03, 'Û', 'ß', 0x18, ' ', 0x06, 0x1A, 0x03, 'Û', 0x08, 0x1A, + '%', 'Û', 'Ý', 0x19, 0x10, 0x03, 'Ü', 'Û', 'ß', 'ß', 0x18, ' ', + 0x06, 0x1A, 0x03, 'Û', 0x08, 0x1A, '%', 'Û', 'Ý', 0x19, 0x0E, 0x03, + 'Ü', 'Û', 'ß', 0x18, 0x05, 'Ú', 0x06, 0x1A, 0x03, 'ß', 0x04, 'ß', + 'ß', 0x08, 'ß', 0x0C, 'ß', 'ß', 0x08, 'ß', 0x0C, 'ß', 'ß', 0x08, + 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x04, + 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', + 0x08, 'ß', 0x0E, 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', + 0x04, 'ß', 'ß', 0x05, 0x1A, 0x03, 'Ä', ' ', 0x04, 'Ü', 'Ü', 'Ü', + ' ', 'Ü', 'Ü', 'Ü', 0x19, 0x06, 0x03, 'Ü', 'Ü', 'Û', 'Û', 'Ü', + 0x19, 0x08, 0x0A, 'Ü', 'Ü', 'Ü', 0x18, 0x05, '³', ' ', ' ', 0x0C, + 'Ü', 'Ü', 'Ü', 0x19, 0x02, 'Ü', 'Ü', 'Ü', 0x19, 0x02, 0x04, 'Ü', + 'Ü', 'Ü', 0x19, 0x02, 0x0C, 'Ü', 'Ü', 'Ü', 0x19, 0x02, 'Ü', 'Ü', + 'Ü', 0x19, 0x02, 0x04, 'Ü', 'Ü', 'Ü', 0x19, 0x02, 0x03, '°', 0x1A, + 0x22, 'ß', '±', 0x18, 0x05, '³', ' ', ' ', 0x0C, 'Û', 'Û', 'Û', + 0x19, 0x02, 'Û', 'Û', 'Û', 0x19, 0x02, 0x04, 'Û', 'Û', 'Û', 0x19, + 0x02, 0x0C, 'Û', 'Û', 'Û', 0x19, 0x02, 'Û', 'Û', 'Û', 0x19, 0x02, + 0x04, 'Û', 'Û', 'Û', 0x19, 0x02, 0x03, '°', ' ', 'Ü', 0x19, 0x02, + 'Ü', ' ', 'Ü', ' ', 0x1A, 0x03, 'Ü', ' ', 0x1A, 0x03, 'Ü', ' ', + 'Ü', ' ', ' ', 'Ü', ' ', 'Ü', 0x19, 0x02, 'Ü', ' ', 0x1A, 0x03, + 'Ü', ' ', '±', 0x18, 0x05, 'À', 'Ü', 'Ü', 'Ä', 'Ü', 'Ä', 'Ü', + 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', + 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', + 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', ' ', 0x03, '°', ' ', 'Û', + 0x19, 0x02, 'Û', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', + ' ', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', ' ', 'Ü', + 'ß', ' ', ' ', 'Û', 0x19, 0x03, '±', 0x18, 0x01, 0x1A, '$', 'ý', + 0x05, 'Û', ' ', 0x03, '°', ' ', 'Û', ' ', 'Û', ' ', 'Û', ' ', + 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', + 'Û', ' ', ' ', 'Û', ' ', 'Û', 'ß', 'ß', 'Ü', ' ', ' ', 'Û', + 'ß', 'ß', ' ', ' ', '±', 0x18, 0x01, 0x1A, '$', 'ý', 0x05, 'Û', + ' ', 0x03, '°', ' ', 'Û', 'Ü', 'Û', 'Ü', 'Û', ' ', 'Û', ' ', + 'Û', ' ', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', 'Ü', + 'Ü', 'Û', ' ', 'Û', 0x19, 0x02, 'Û', ' ', 'Û', 'Ü', 'Ü', 'Ü', + ' ', '±', 0x18, 0x01, 0x1A, '$', 'ý', 0x05, 'Û', ' ', 0x03, '°', + 0x1A, 0x22, 'Ü', '±', 0x18}; + +unsigned char WINNUKE1 [913] = { + 0x01, 0x10, 0x1A, 'N', 'ý', 0x18, 0x1A, 'N', 'ý', 0x18, 0x1A, 0x06, + 'ý', 0x03, 'Ü', 'Ü', 0x1A, 0x1C, 'Û', 'Ü', 'Ü', 0x01, 0x1A, '&', + 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, 0x1A, ' ', 'ý', 0x03, + 'Û', 0x01, 0x1A, '%', 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, + 0x1A, 0x06, 'ý', 0x06, 'Ü', 0x1A, 0x13, 'Û', 'Ü', 0x01, 0x1A, 0x03, + 'ý', 0x03, 'Û', 0x01, 0x1A, '%', 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, + 'Û', 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, 0x07, 'Û', 0x07, 0x16, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x07, 0x16, 'Ü', 0x06, 0x10, 0x1A, 0x03, 'Û', 0x01, 'ý', 'ý', 'ý', + 0x03, 'Û', 0x01, 0x1A, '%', 'ý', 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', + 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, 0x06, 'Û', 0x07, 0x16, 'Þ', 0x17, + ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', ' ', ' ', '(', 0x02, + '-', 0x04, ')', ' ', ' ', 0x07, 0x16, 'Ý', 0x06, 0x10, 'Û', 'Û', + 'Û', 0x01, 'ý', 'ý', 'ý', 0x03, 'Û', 0x01, 0x1A, '%', 'ý', 0x18, + 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, 0x06, + 'Û', 0x17, 0x19, 0x05, 0x04, 'ú', 'ú', 0x19, 0x05, 0x06, 0x10, 'Û', + 'Û', 'Û', 0x01, 'ý', 'ý', 'ý', 0x03, 'Û', 0x01, 0x1A, '%', 'ý', + 0x18, 0x1A, 0x05, 'ý', 0x03, 'Û', 0x01, 0x1A, 0x05, 'ý', 0x06, 0x1A, + 0x06, 'Û', 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, 'Ü', 0x06, 'Ü', + 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', ' ', 0x0C, '(', + ' ', 0x06, 0x10, 'Û', 'Û', 'Û', 0x01, 'ý', 'ý', 'ý', 0x03, 'Û', + 0x01, 0x1A, '%', 'ý', 0x18, 0x03, 0x1A, 0x05, 'ß', 0x01, 0x1A, 0x06, + 'ý', 0x06, 0x1A, 0x06, 'Û', 0x07, 0x16, 'Þ', 0x17, ' ', ' ', 0x00, + 'ß', 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, + 'ß', 0x00, 'ß', ' ', ' ', 0x07, 0x16, 'Ý', 0x06, 0x10, 'Û', 'Û', + 'Û', 0x01, 0x1A, 0x03, 'ý', 0x03, 0x1A, '%', 'ß', 0x18, 0x01, 0x1A, + 0x0C, 'ý', 0x06, 'Û', 'Û', 0x08, 0x16, 0x1A, 0x04, 'Ü', 0x17, '°', + '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x16, 'Ü', 'Ü', 'Ü', + 0x10, 0x1A, 0x06, 'Ü', 0x01, 0x1A, 0x22, 'ý', 0x18, 0x05, 0x1A, 0x0B, + 'ß', 0x08, 0x15, 'Ü', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', 0x1A, + 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 0x1A, 0x07, + 'Û', 0x15, 0x1A, 0x07, 'Ü', 0x05, 0x10, 0x1A, 0x16, 'ß', 0x18, 0x19, + 0x09, 0x08, 'Ü', 0x17, 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', + '±', '±', '²', '²', '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, + 0x1A, 0x0D, 'Û', 'Ü', 0x18, 0x19, 0x07, 'Ü', 0x17, 0x1A, 0x07, 'Û', + '°', '°', '°', 'Û', '°', '°', '±', '±', '²', '²', '²', '±', + 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', 0x10, 0x1A, 0x0D, 'Û', 0x03, 'Ü', + 0x18, 0x19, 0x05, 0x08, 'Ü', 0x17, 0x1A, 0x0F, 'Û', '±', 0x1A, 0x04, + '²', 0x1A, 0x0D, 'Û', 0x10, 'ß', 0x19, 0x06, 'ß', 'Û', 0x13, 'Ü', + 'Ü', 'Ü', 0x03, 0x10, 'Û', 'Û', 'Û', 0x18, ' ', 0x06, 'Ü', 'Û', + 'Û', 'Û', 0x08, 0x1A, '%', 'Û', 0x19, 0x09, 0x03, 0x1A, 0x03, 'Û', + 'ß', 0x18, ' ', 0x06, 0x1A, 0x03, 'Û', 0x08, 0x1A, '%', 'Û', 'Ý', + 0x19, 0x09, 0x03, 'ß', 'Û', 'Ü', 0x18, ' ', 0x06, 0x1A, 0x03, 'Û', + 0x08, 0x1A, '%', 'Û', 'Ý', 0x19, 0x0B, 0x03, 'ß', 'Û', 'Ü', 0x18, + 0x05, 'Ú', 0x06, 0x1A, 0x03, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x0C, + 'ß', 'ß', 0x08, 'ß', 0x0C, 'ß', 'ß', 0x08, 'ß', 0x0E, 'ß', 'ß', + 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', + 0x04, 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x0E, 'ß', + 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x08, 'ß', 0x04, 'ß', 'ß', 0x05, + 0x1A, 0x03, 'Ä', ' ', 0x0C, 'Ü', 'Ü', 'Ü', ' ', 'Ü', 'Ü', 'Ü', + 0x19, 0x06, 0x03, 'Ü', 'Ü', 'Û', 'Û', 'Ü', 0x19, 0x08, 0x0A, 'Ü', + 'Ü', 'Ü', 0x18, 0x05, '³', ' ', ' ', 0x0C, 'Ü', 'Ü', 'Ü', 0x19, + 0x02, 'Ü', 'Ü', 'Ü', 0x19, 0x02, 0x04, 'Ü', 'Ü', 'Ü', 0x19, 0x02, + 0x0C, 'Ü', 'Ü', 'Ü', 0x19, 0x02, 'Ü', 'Ü', 'Ü', 0x19, 0x02, 0x04, + 'Ü', 'Ü', 'Ü', 0x19, 0x02, 0x03, '°', 0x1A, 0x22, 'ß', '±', 0x18, + 0x05, '³', ' ', ' ', 0x0C, 'Û', 'Û', 'Û', 0x19, 0x02, 'Û', 'Û', + 'Û', 0x19, 0x02, 0x04, 'Û', 'Û', 'Û', 0x19, 0x02, 0x0C, 'Û', 'Û', + 'Û', 0x19, 0x02, 'Û', 'Û', 'Û', 0x19, 0x02, 0x04, 'Û', 'Û', 'Û', + 0x19, 0x02, 0x03, '°', ' ', 'Ü', 0x19, 0x02, 'Ü', ' ', 'Ü', ' ', + 0x1A, 0x03, 'Ü', ' ', 0x1A, 0x03, 'Ü', ' ', 'Ü', ' ', ' ', 'Ü', + ' ', 'Ü', 0x19, 0x02, 'Ü', ' ', 0x1A, 0x03, 'Ü', ' ', '±', 0x18, + 0x05, 'À', 'Ü', 'Ü', 'Ä', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', + 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', + 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', 'Ä', 'Ü', 'Ü', + 'Ä', 'Ü', 'Ü', ' ', 0x03, '°', ' ', 'Û', 0x19, 0x02, 'Û', ' ', + 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', + 'Û', ' ', ' ', 'Û', ' ', 'Û', ' ', 'Ü', 'ß', ' ', ' ', 'Û', + 0x19, 0x03, '±', 0x18, 0x01, 0x1A, '$', 'ý', 0x05, 'Û', ' ', 0x03, + '°', ' ', 'Û', ' ', 'Û', ' ', 'Û', ' ', 'Û', ' ', 'Û', ' ', + ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', + ' ', 'Û', 'ß', 'ß', 'Ü', ' ', ' ', 'Û', 'ß', 'ß', ' ', ' ', + '±', 0x18, 0x01, 0x1A, '$', 'ý', 0x05, 'Û', ' ', 0x03, '°', ' ', + 'Û', 'Ü', 'Û', 'Ü', 'Û', ' ', 'Û', ' ', 'Û', ' ', ' ', 'Û', + ' ', 'Û', ' ', ' ', 'Û', ' ', 'Û', 'Ü', 'Ü', 'Û', ' ', 'Û', + 0x19, 0x02, 'Û', ' ', 'Û', 'Ü', 'Ü', 'Ü', ' ', '±', 0x18, 0x01, + 0x1A, '$', 'ý', 0x05, 'Û', ' ', 0x03, '°', 0x1A, 0x22, 'Ü', '±', + 0x18}; + +unsigned char SAVE0 [733] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x0D, 0x07, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x00, 'ß', 0x10, 0x19, 0x1E, 0x08, '(', ')', 'Ñ', '(', ')', 0x19, + 0x0B, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, 0x0C, 0x07, 'Þ', + 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', ' ', ' ', '(', + 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1F, 0x04, + '³', 0x19, 0x0F, 0x05, '³', 0x18, 0x19, 0x0C, 0x17, 0x19, 0x05, 0x04, + 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, 0x1D, 'Þ', 0x1A, 0x05, 'Û', 'Ü', + 'Ü', 'Ü', ' ', ' ', 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', + 0x18, 0x19, 0x0C, 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, 'Ü', 0x06, + 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', ' ', 0x0C, + '(', ' ', 0x10, 0x19, 0x1D, 0x0E, 0x14, 'Ü', 'Ü', 'Ü', 0x01, 'Ü', + 'Ü', 0x10, 0x19, 0x0B, 0x03, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', + 'Ü', 0x18, 0x10, 0x19, 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', + 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', + 0x00, 'ß', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1C, 'Þ', 'Û', 'Û', + 0x01, 'Û', 'Û', 0x0F, 0x11, 'ú', 0x10, 0x19, 0x0B, 0x14, 'ú', ' ', + ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', 0x18, 0x19, 0x07, 0x1A, 0x04, 'Ü', + 0x17, '°', '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x10, 0x1A, + 0x04, 'Ü', 0x19, 0x17, 0x07, 'Û', 'Û', 'Û', 0x11, 'Û', 'Ü', 'Ü', + 0x10, 0x19, 0x0B, 0x08, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', + 0x18, 0x19, 0x04, 'Ü', 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', 0x1A, + 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 'Û', 'Û', + 0x1A, 0x09, 'Ü', 0x09, 0x1A, 0x09, 'Ü', ' ', 0x07, 0x1A, 0x06, 'Û', + 'Ü', 0x19, 0x07, 0x08, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', + 0x17, 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', + '²', '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 0x1A, 0x08, 'Û', + 'ß', 0x09, 'Û', 'Û', 0x1A, 0x04, 'ß', 0x19, 0x02, 0x07, 'Þ', 'Û', + 'Û', 'Û', 'ß', 0x19, 0x0E, 0x08, 'Ü', 'Û', 'Û', 'Ý', 0x18, ' ', + 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', '°', 'Û', '°', '°', '±', + '±', '²', '²', '²', '±', 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', 0x10, + 'Û', 0x19, 0x06, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x06, 0x07, 'Þ', 'Û', + 'Û', 0x1A, 0x03, 'Ü', 0x04, 0x17, 'ß', 0x10, 0x19, 0x07, 0x08, 0x14, + 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', 'Ý', 0x18, 'Û', 0x17, 0x1A, 0x0E, + 'Û', '±', 0x1A, 0x04, '²', 0x1A, 0x0F, 'Û', 0x10, 0x19, 0x07, 0x09, + 'ß', 'ß', 0x19, 0x08, 0x07, 0x1A, 0x04, 'Û', 'ß', 0x19, 0x09, 0x08, + 'ß', 0x1A, 0x04, 'Û', 0x18, 'Û', 0x17, 0x1A, 0x0E, 'Û', '±', '²', + '²', '°', '±', 0x1A, 0x10, 'Û', 0x10, 0x19, 0x0E, 0x06, '²', '°', + 0x19, 0x02, 0x07, 'Û', 'Û', 'Û', 0x19, 0x0D, 0x08, 'Û', 'Û', 'Û', + 0x18, 'Û', 0x17, 'Û', 0x10, ' ', 0x17, 0x1A, 0x0C, 'Û', '±', '²', + '²', 0x1A, 0x12, 'Û', 0x10, 0x19, 0x0E, 0x06, 0x14, 'ß', 'ß', 0x04, + 0x10, 'Ü', 'Ü', 'Ü', 0x07, 0x14, 'ß', 'ß', 'ß', 0x10, 0x19, 0x0D, + 0x08, 'Û', 'Û', 'Û', 0x18, 'Û', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', + 0x10, 'Ý', 0x19, 0x0E, 0x06, 'Û', '²', ' ', ' ', 0x07, 'Þ', 0x1A, + 0x03, 'Û', 0x19, 0x0B, 0x09, 0x1A, 0x04, 'Û', 0x18, 0x08, 'Û', ' ', + 0x17, 0x1A, 0x22, 'Û', 0x10, 0x19, 0x0F, 0x06, '±', 'Û', ' ', ' ', + 0x07, 'Þ', 0x1A, 0x04, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x18, 0x19, 0x02, 0x08, 0x1A, ' ', 'Û', 0x19, 0x10, 0x06, + 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, 'ß', + 0x04, 0x17, 'Ü', 0x10, 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, + 'Û', 0x18, 0x19, 0x03, 0x08, 'ß', 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x19, + 0x11, 0x06, 'Û', '±', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, + 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, + 0x09, 'Û', 0x19, 0x04, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x14, 0x06, + '²', '°', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, + 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', + 0x19, 0x06, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', 0x19, + 0x0B, 0x06, '±', 'Û', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, + 0x09, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18, ' ', 0x08, 0x1A, 0x11, 'Û', + 0x19, 0x07, 'ß', 0x1A, 0x0D, 'Û', 'Ü', 0x19, 0x09, 0x06, '°', '±', + 0x19, 0x02, 0x07, 0x1A, 0x03, 'Û', 0x19, 0x0C, 0x09, 'Û', 'Û', 'Û', + 0x18}; + +unsigned char SAVE1 [752] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x0D, 0x07, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x00, 'ß', 0x10, 0x19, 0x1E, 0x08, '(', ')', 'Ñ', '(', ')', 0x19, + 0x0B, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, 0x0C, 0x07, 'Þ', + 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', ' ', ' ', '(', + 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1F, 0x04, + '³', 0x19, 0x0F, 0x05, '³', 0x18, 0x19, 0x0C, 0x17, 0x19, 0x05, 0x04, + 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, 0x1D, 'Þ', 0x1A, 0x05, 'Û', 'Ü', + 'Ü', 'Ü', ' ', ' ', 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', + 0x18, 0x19, 0x0C, 0x17, ' ', 0x0C, ')', ' ', ' ', 0x00, 'Ü', 0x06, + 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', ' ', 0x0C, + '(', ' ', 0x10, 0x19, 0x1D, 0x0E, 0x14, 'Ü', 'Ü', 'Ü', 0x01, 'Ü', + 'Ü', 0x10, 0x19, 0x0B, 0x03, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', + 'Ü', 0x18, 0x10, 0x19, 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', + 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', + 0x00, 'ß', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1C, 0x0C, 0x14, '°', + '±', 'Û', '°', '±', 'Û', '°', '±', 0x10, 0x19, 0x09, 0x0F, 0x14, + 'ú', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', 0x18, 0x19, 0x07, 0x1A, + 0x04, 'Ü', 0x17, '°', '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', + 0x10, 0x1A, 0x04, 'Ü', 0x19, 0x16, 0x14, ' ', ' ', 0x0C, '°', '±', + 'Û', '°', '±', 'Û', 0x10, 0x19, 0x0A, 0x08, 0x14, 'Ü', 'Ü', 'Û', + 0x10, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 'Ü', 0x17, 0x1A, 0x06, 'Û', + '°', '°', '°', 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, + 'Û', 0x10, 'Û', 'Û', 0x1A, 0x09, 'Ü', 0x09, 0x1A, 0x09, 'Ü', ' ', + 0x0C, 0x14, '°', '±', 'Û', '°', '±', 'Û', '°', '±', 0x10, 0x19, + 0x07, 0x08, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', 0x17, 0x1A, + 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', '²', '²', + 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 0x1A, 0x08, 'Û', 'ß', 0x09, + 'Û', 'Û', 0x1A, 0x04, 'ß', 0x19, 0x02, 0x0C, 0x14, '°', '±', 'Û', + '°', '±', 'Û', '°', '±', 0x10, 0x19, 0x0B, 0x08, 'Ü', 'Û', 'Û', + 'Ý', 0x18, ' ', 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', '°', 'Û', + '°', '°', '±', '±', '²', '²', '²', '±', 0x1A, 0x04, '°', 0x1A, + 0x09, 'Û', 0x10, 'Û', 0x19, 0x06, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x06, + 0x0C, 0x14, '°', '±', 'Û', '°', '±', 'Û', '°', '±', 0x10, 0x19, + 0x07, 0x08, 0x14, 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', 'Ý', 0x18, 'Û', + 0x17, 0x1A, 0x0E, 'Û', '±', 0x1A, 0x04, '²', 0x1A, 0x0F, 'Û', 0x10, + 0x19, 0x07, 0x09, 'ß', 'ß', 0x19, 0x08, 0x0C, 0x14, '°', '±', 'Û', + '°', '±', 'Û', 0x10, 0x19, 0x09, 0x08, 'ß', 0x1A, 0x04, 'Û', 0x18, + 'Û', 0x17, 0x1A, 0x0E, 'Û', '±', '²', '²', '°', '±', 0x1A, 0x10, + 'Û', 0x10, 0x19, 0x0E, 0x06, '²', '°', 0x19, 0x02, 0x07, 'Û', 'Û', + 'Û', 0x19, 0x0D, 0x08, 'Û', 'Û', 'Û', 0x18, 'Û', 0x17, 'Û', 0x10, + ' ', 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', 0x1A, 0x12, 'Û', 0x10, + 0x19, 0x0E, 0x06, 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 'Ü', 0x07, + 0x14, 'ß', 'ß', 'ß', 0x10, 0x19, 0x0D, 0x08, 'Û', 'Û', 'Û', 0x18, + 'Û', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, 'Ý', 0x19, 0x0E, 0x06, + 'Û', '²', ' ', ' ', 0x07, 'Þ', 0x1A, 0x03, 'Û', 0x19, 0x0B, 0x09, + 0x1A, 0x04, 'Û', 0x18, 0x08, 'Û', ' ', 0x17, 0x1A, 0x22, 'Û', 0x10, + 0x19, 0x0F, 0x06, '±', 'Û', ' ', ' ', 0x07, 'Þ', 0x1A, 0x04, 'Û', + 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x02, + 0x08, 0x1A, ' ', 'Û', 0x19, 0x10, 0x06, 0x14, 'ß', 'ß', 0x04, 0x10, + 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, 'ß', 0x04, 0x17, 'Ü', 0x10, 0x19, + 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 0x08, + 'ß', 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x19, 0x11, 0x06, 'Û', '±', ' ', + ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, 0x04, 'ß', + 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x14, 0x06, '²', '°', ' ', ' ', 0x07, + 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', + 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, 0x06, 'ß', 0x1A, 0x06, + 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', 0x19, 0x0B, 0x06, '±', 'Û', ' ', + ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 'ß', 0x1A, 0x04, 'Û', + 'ß', 0x18, ' ', 0x08, 0x1A, 0x11, 'Û', 0x19, 0x07, 'ß', 0x1A, 0x0D, + 'Û', 'Ü', 0x19, 0x09, 0x06, '°', '±', 0x19, 0x02, 0x07, 0x1A, 0x03, + 'Û', 0x19, 0x0C, 0x09, 'Û', 'Û', 'Û', 0x18}; + +unsigned char SAVE2 [813] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x0D, 0x07, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x00, 'ß', 0x10, 0x19, 0x16, 0x0C, 0x14, '°', '±', '²', 0x10, 0x19, + 0x04, 0x08, '(', 0x0C, 0x14, '°', '±', 'Û', 0x08, 0x10, ')', 0x19, + 0x0B, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, 0x0C, 0x07, 'Þ', + 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', ' ', ' ', '(', + 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1F, 0x04, + '³', 0x19, 0x0F, 0x05, '³', 0x18, 0x19, 0x0C, 0x17, 0x19, 0x05, 0x04, + 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, 0x17, 0x0C, 0x14, '°', '±', '²', + 0x10, 0x19, 0x02, 0x04, 'Þ', 0x0C, 0x14, '°', '±', 'Û', '°', '±', + 'Û', 0x04, 0x10, 'Ü', 'Ü', 'Ü', ' ', ' ', 0x03, 'Ü', 'Ü', 'Ü', + 0x1A, 0x05, 'Û', 'Ý', 0x18, 0x19, 0x0C, 0x17, ' ', 0x0C, ')', ' ', + ' ', 0x00, 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, + 'Ü', ' ', ' ', 0x0C, '(', ' ', 0x10, 0x19, 0x18, 0x14, '°', '±', + '²', 0x10, ' ', ' ', 0x14, '°', '±', 'Û', '°', '±', 'Û', 0x10, + 0x19, 0x0A, 0x03, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x18, + 0x10, 0x19, 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x00, 'ß', 0x06, 'ß', + 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', + ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1C, 0x0C, 0x14, '°', '±', 'Û', + '°', '±', 'Û', '°', '±', 0x10, 0x19, 0x09, 0x0F, 0x14, 'ú', ' ', + ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', 0x18, 0x19, 0x07, 0x1A, 0x04, 'Ü', + 0x17, '°', '°', '°', 0x1A, 0x06, '±', 0x1A, 0x03, '°', 0x10, 0x1A, + 0x04, 'Ü', 0x19, 0x16, 0x14, ' ', ' ', 0x0C, '°', '±', 'Û', '°', + '±', 'Û', 0x10, 0x19, 0x0A, 0x08, 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', + 'Û', 'Û', 0x18, 0x19, 0x04, 'Ü', 0x17, 0x1A, 0x06, 'Û', '°', '°', + '°', 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, 0x05, 'Û', 0x10, + 'Û', 'Û', 0x1A, 0x09, 'Ü', 0x09, 0x1A, 0x09, 'Ü', ' ', 0x0C, 0x14, + '°', '±', 'Û', '°', '±', 'Û', '°', '±', 0x10, 0x19, 0x07, 0x08, + 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', 0x17, 0x1A, 0x06, 'Û', + '±', 0x1A, 0x03, '°', '±', '±', '±', '²', '²', '²', 0x1A, 0x05, + '°', 0x1A, 0x07, 'Û', 0x10, 0x1A, 0x08, 'Û', 'ß', 0x09, 'Û', 'Û', + 0x1A, 0x04, 'ß', 0x19, 0x02, 0x0C, 0x14, '°', '±', 'Û', '°', '±', + 'Û', '°', '±', 0x10, 0x19, 0x0B, 0x08, 'Ü', 'Û', 'Û', 'Ý', 0x18, + ' ', 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', '°', 'Û', '°', '°', + '±', '±', '²', '²', '²', '±', 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', + 0x10, 'Û', 0x19, 0x06, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x06, 0x0C, 0x14, + '°', '±', 'Û', '°', '±', 'Û', '°', '±', 0x10, 0x19, 0x07, 0x08, + 0x14, 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', 'Ý', 0x18, 'Û', 0x17, 0x1A, + 0x0E, 'Û', '±', 0x1A, 0x04, '²', 0x1A, 0x0F, 'Û', 0x10, 0x19, 0x07, + 0x09, 'ß', 'ß', 0x19, 0x08, 0x0C, 0x14, '°', '±', 'Û', '°', '±', + 'Û', 0x10, 0x19, 0x09, 0x08, 'ß', 0x1A, 0x04, 'Û', 0x18, 'Û', 0x17, + 0x1A, 0x0E, 'Û', '±', '²', '²', '°', '±', 0x1A, 0x10, 'Û', 0x10, + 0x19, 0x0E, 0x06, '²', '°', 0x19, 0x02, 0x0C, 0x14, '°', '±', 'Û', + '°', '±', 0x10, 0x19, 0x0B, 0x08, 'Û', 'Û', 'Û', 0x18, 'Û', 0x17, + 'Û', 0x10, ' ', 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', 0x1A, 0x12, + 'Û', 0x10, 0x19, 0x0E, 0x06, 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', + 'Ü', 0x07, 0x14, 'ß', 'ß', 'ß', 0x10, 0x19, 0x0D, 0x08, 'Û', 'Û', + 'Û', 0x18, 'Û', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, 'Ý', 0x19, + 0x0E, 0x06, 'Û', '²', ' ', ' ', 0x07, 'Þ', 0x1A, 0x03, 'Û', ' ', + ' ', 0x0C, 0x14, '°', '±', 'Û', 0x10, 0x19, 0x06, 0x09, 0x1A, 0x04, + 'Û', 0x18, 0x08, 'Û', ' ', 0x17, 0x1A, 0x22, 'Û', 0x10, 0x19, 0x0B, + 0x0C, 0x14, '°', '±', 'Û', 0x10, ' ', 0x06, '±', 'Û', ' ', ' ', + 0x07, 'Þ', 0x1A, 0x04, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x18, 0x19, 0x02, 0x08, 0x1A, ' ', 'Û', 0x19, 0x10, 0x06, + 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, 'ß', + 0x04, 0x17, 'Ü', 0x10, 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, + 'Û', 0x18, 0x19, 0x03, 0x08, 'ß', 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x19, + 0x05, 0x0C, 0x14, '°', '±', 'Û', 0x10, 0x19, 0x08, 0x06, 'Û', '±', + ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, + 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, 0x04, + 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x14, 0x06, '²', '°', ' ', ' ', + 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, + 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, 0x06, 'ß', 0x1A, + 0x06, 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', 0x19, 0x0B, 0x06, '±', 'Û', + ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 'ß', 0x1A, 0x04, + 'Û', 'ß', 0x18, ' ', 0x08, 0x1A, 0x11, 'Û', 0x19, 0x07, 'ß', 0x1A, + 0x0D, 'Û', 'Ü', 0x19, 0x09, 0x06, '°', '±', 0x19, 0x02, 0x07, 0x1A, + 0x03, 'Û', 0x19, 0x0C, 0x09, 'Û', 'Û', 'Û', 0x18}; + +unsigned char SAVE3 [742] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x19, ',', 0x0C, 0x14, '°', '±', 'Û', + 0x18, 0x18, 0x18, 0x10, 0x19, 0x0D, 0x07, 'Ü', 0x06, 0x17, '°', '°', + ' ', '°', '°', '°', ' ', ' ', '°', '°', 0x00, 'ß', 0x10, 0x19, + 0x16, 0x0C, 0x14, '°', '±', '²', 0x10, 0x19, 0x05, 0x14, '°', '±', + 'Û', 0x10, 0x19, 0x0C, 0x05, '(', ')', 'Â', '(', ')', 0x18, 0x19, + 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, ')', + ' ', ' ', '(', 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, 'Ý', + 0x19, '0', 0x05, '³', 0x18, 0x19, 0x0C, 0x17, 0x19, 0x05, 0x04, 'ú', + 'ú', 0x19, 0x05, 0x10, 0x19, 0x17, 0x0C, 0x14, '°', '±', '²', 0x10, + 0x19, 0x02, 0x04, 'Þ', 0x0C, 0x14, '°', '±', 'Û', 0x10, 0x19, 0x07, + 0x03, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', 0x18, 0x19, 0x0C, 0x17, + ' ', 0x0C, ')', ' ', ' ', 0x00, 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, + 'Ü', 0x06, 'Ü', 0x00, 'Ü', ' ', ' ', 0x0C, '(', ' ', 0x10, 0x19, + 0x18, 0x14, '°', '±', '²', 0x10, ' ', ' ', 0x14, '°', '±', 'Û', + '°', '±', 0x10, 0x19, 0x0B, 0x03, 0x14, 'ß', 'ß', 0x0D, 0x13, 'Ü', + 'Ü', 'Ü', 0x18, 0x10, 0x19, 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x00, + 'ß', 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', 0x06, + 'ß', 0x00, 'ß', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, 0x1C, 0x0C, 0x14, + '°', '±', 'Û', '°', 0x10, ' ', ' ', 0x14, '°', '±', 0x10, 0x19, + 0x09, 0x0F, 0x14, 'ú', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', 0x18, + 0x19, 0x07, 0x1A, 0x04, 'Ü', 0x17, '°', '°', '°', 0x1A, 0x06, '±', + 0x1A, 0x03, '°', 0x10, 0x1A, 0x04, 'Ü', 0x19, 0x16, 0x14, ' ', ' ', + 0x0C, '°', 0x10, 0x19, 0x02, 0x14, '±', 'Û', 0x10, 0x19, 0x0A, 0x08, + 0x14, 'Ü', 'Ü', 'Û', 0x10, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 'Ü', + 0x17, 0x1A, 0x06, 'Û', '°', '°', '°', 0x1A, 0x04, '±', '²', 0x1A, + 0x04, '°', 0x1A, 0x05, 'Û', 0x10, 'Û', 'Û', 0x1A, 0x09, 'Ü', 0x09, + 0x1A, 0x09, 'Ü', ' ', 0x0C, 0x14, '°', 0x10, 0x19, 0x05, 0x14, '±', + 0x10, 0x19, 0x07, 0x08, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', + 0x17, 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', + '²', '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 0x1A, 0x08, 'Û', + 'ß', 0x09, 'Û', 'Û', 0x1A, 0x04, 'ß', 0x19, 0x09, 0x0C, 0x14, '±', + 0x10, 0x19, 0x0B, 0x08, 'Ü', 'Û', 'Û', 'Ý', 0x18, ' ', 'Ü', 0x17, + 0x1A, 0x07, 'Û', '°', '°', '°', 'Û', '°', '°', '±', '±', '²', + '²', '²', '±', 0x1A, 0x04, '°', 0x1A, 0x09, 'Û', 0x10, 'Û', 0x19, + 0x06, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x16, 0x08, 0x14, 'Ü', 0x10, 'Ü', + 0x1A, 0x04, 'Û', 'Ý', 0x18, 'Û', 0x17, 0x1A, 0x0E, 'Û', '±', 0x1A, + 0x04, '²', 0x1A, 0x0F, 'Û', 0x10, 0x19, 0x07, 0x09, 'ß', 'ß', 0x19, + 0x18, 0x08, 'ß', 0x1A, 0x04, 'Û', 0x18, 'Û', 0x17, 0x1A, 0x0E, 'Û', + '±', '²', '²', '°', '±', 0x1A, 0x10, 'Û', 0x10, 0x19, 0x0E, 0x06, + '²', '°', 0x19, 0x13, 0x08, 'Û', 'Û', 'Û', 0x18, 'Û', 0x17, 'Û', + 0x10, ' ', 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', 0x1A, 0x12, 'Û', + 0x10, 0x19, 0x0E, 0x06, 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 'Ü', + 0x19, 0x10, 0x08, 'Û', 'Û', 'Û', 0x18, 'Û', ' ', 'Þ', 0x17, 0x1A, + '!', 'Û', 0x10, 'Ý', 0x19, 0x0E, 0x06, 'Û', '²', 0x19, 0x02, 0x0C, + 0x14, '°', '±', 'Û', '°', 0x10, 0x19, 0x0B, 0x09, 0x1A, 0x04, 'Û', + 0x18, 0x08, 'Û', ' ', 0x17, 0x1A, 0x22, 'Û', 0x10, 0x19, 0x0F, 0x06, + '±', 'Û', ' ', ' ', 0x07, 'Þ', 0x1A, 0x04, 'Û', 0x19, 0x09, 0x09, + 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x02, 0x08, 0x1A, ' ', + 'Û', 0x19, 0x10, 0x06, 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 0x07, + 0x14, 0x1A, 0x04, 'ß', 0x04, 0x17, 'Ü', 0x10, 0x19, 0x09, 0x09, 0x11, + 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 0x08, 'ß', 'ß', 0x1A, + 0x1B, 'Û', 'ß', 0x19, 0x11, 0x06, 'Û', '±', ' ', ' ', 0x07, 0x1A, + 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, + 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, 0x04, 'ß', 0x1A, 0x06, 'Û', + 'Ü', 0x19, 0x14, 0x06, '²', '°', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', + 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, + 0x08, 0x1A, 0x09, 'Û', 0x19, 0x06, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, + 0x04, 'Ü', 'Ü', 0x19, 0x0B, 0x06, '±', 'Û', ' ', ' ', 0x07, 0x1A, + 0x05, 'Û', 0x19, 0x09, 0x09, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18, ' ', + 0x08, 0x1A, 0x11, 'Û', 0x19, 0x07, 'ß', 0x1A, 0x0B, 'Û', 0x0C, 0x14, + '°', '±', 'Û', 0x10, 0x19, 0x09, 0x06, '°', '±', 0x19, 0x02, 0x07, + 0x1A, 0x03, 'Û', 0x19, 0x0C, 0x09, 'Û', 'Û', 'Û', 0x18}; + +unsigned char SAVE4 [639] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x0D, 0x07, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x00, 'ß', 0x10, 0x19, '/', 0x05, '(', ')', 'Â', '(', ')', 0x18, + 0x19, 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, + ')', ' ', ' ', '(', 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, + 'Ý', 0x19, '0', 0x05, '³', 0x18, 0x19, 0x0C, 0x17, 0x19, 0x05, 0x04, + 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, ')', 0x03, 'Ü', 'Ü', 'Ü', 0x1A, + 0x05, 'Û', 'Ý', 0x18, 0x19, 0x0C, 0x17, ' ', 0x0C, ')', ' ', ' ', + 0x00, 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', + ' ', ' ', 0x0C, '(', ' ', 0x10, 0x19, '.', 0x03, 0x14, 'ß', 'ß', + 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x18, 0x10, 0x19, 0x0C, 0x07, 'Þ', 0x17, + ' ', ' ', 0x00, 'ß', 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', + 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, + '.', 0x0F, 0x14, 'ú', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', 0x18, + 0x19, 0x07, 0x1A, 0x04, 'Ü', 0x17, '°', '°', '°', 0x1A, 0x06, '±', + 0x1A, 0x03, '°', 0x10, 0x1A, 0x04, 'Ü', 0x19, ')', 0x14, 'Ü', 'Ü', + 'Û', 0x10, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 'Ü', 0x17, 0x1A, 0x06, + 'Û', '°', '°', '°', 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, + 0x05, 'Û', 0x10, 'Û', 'Û', 0x1A, 0x09, 'Ü', 0x09, 0x1A, 0x09, 'Ü', + 0x19, 0x10, 0x08, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', 0x17, + 0x1A, 0x06, 'Û', '±', 0x1A, 0x03, '°', '±', '±', '±', '²', '²', + '²', 0x1A, 0x05, '°', 0x1A, 0x07, 'Û', 0x10, 0x1A, 0x08, 'Û', 'ß', + 0x09, 'Û', 'Û', 0x1A, 0x04, 'ß', 0x19, 0x16, 0x08, 'Ü', 'Û', 'Û', + 'Ý', 0x18, ' ', 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', '°', 'Û', + '°', '°', '±', '±', '²', '²', '²', '±', 0x1A, 0x04, '°', 0x1A, + 0x09, 'Û', 0x10, 'Û', 0x19, 0x06, 0x09, 0x1A, 0x03, 'Û', 0x19, 0x16, + 0x08, 0x14, 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', 'Ý', 0x18, 'Û', 0x17, + 0x1A, 0x0E, 'Û', '±', 0x1A, 0x04, '²', 0x1A, 0x0F, 'Û', 0x10, 0x19, + 0x07, 0x09, 'ß', 'ß', 0x19, 0x18, 0x08, 'ß', 0x1A, 0x04, 'Û', 0x18, + 'Û', 0x17, 0x1A, 0x0E, 'Û', '±', '²', '²', '°', '±', 0x1A, 0x10, + 'Û', 0x10, 0x19, 0x0E, 0x06, '²', '°', 0x19, 0x13, 0x08, 'Û', 'Û', + 'Û', 0x18, 'Û', 0x17, 'Û', 0x10, ' ', 0x17, 0x1A, 0x0C, 'Û', '±', + '²', '²', 0x1A, 0x12, 'Û', 0x10, 0x19, 0x0E, 0x06, 0x14, 'ß', 'ß', + 0x04, 0x10, 'Ü', 'Ü', 'Ü', 0x19, 0x10, 0x08, 'Û', 'Û', 'Û', 0x18, + 'Û', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, 'Ý', 0x19, 0x0E, 0x06, + 'Û', '²', 0x19, 0x02, 0x0C, 0x14, '°', '±', 'Û', '°', 0x10, 0x19, + 0x0B, 0x09, 0x1A, 0x04, 'Û', 0x18, 0x08, 'Û', ' ', 0x17, 0x1A, 0x22, + 'Û', 0x10, 0x19, 0x0F, 0x06, '±', 'Û', ' ', ' ', 0x07, 'Þ', 0x1A, + 0x04, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, + 0x19, 0x02, 0x08, 0x1A, ' ', 'Û', 0x19, 0x10, 0x06, 0x14, 'ß', 'ß', + 0x04, 0x10, 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, 'ß', 0x04, 0x17, 'Ü', + 0x10, 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, + 0x03, 0x08, 'ß', 'ß', 0x1A, 0x1B, 'Û', 'ß', 0x19, 0x11, 0x06, 'Û', + '±', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', + 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, + 0x04, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x14, 0x06, '²', '°', ' ', + ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, 'Û', 0x19, 0x06, 'ß', + 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', 0x19, 0x0B, 0x06, '±', + 'Û', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, 'ß', 0x1A, + 0x04, 'Û', 'ß', 0x18, ' ', 0x08, 0x1A, 0x11, 'Û', 0x19, 0x07, 'ß', + 0x1A, 0x0B, 'Û', 0x0C, 0x14, '°', '±', 'Û', 0x10, 0x19, 0x09, 0x06, + '°', '±', 0x19, 0x02, 0x07, 0x1A, 0x03, 'Û', 0x19, 0x0C, 0x09, 'Û', + 'Û', 'Û', 0x18}; + +unsigned char SAVE5 [643] = { + 0x09, 0x10, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x19, 0x0D, 0x07, 'Ü', + 0x06, 0x17, '°', '°', ' ', '°', '°', '°', ' ', ' ', '°', '°', + 0x00, 'ß', 0x10, 0x19, '/', 0x05, '(', ')', 'Â', '(', ')', 0x18, + 0x19, 0x0C, 0x07, 'Þ', 0x17, ' ', ' ', 0x04, '(', 0x02, '-', 0x04, + ')', ' ', ' ', '(', 0x02, '-', 0x04, ')', ' ', ' ', 0x07, 0x10, + 'Ý', 0x19, '0', 0x05, '³', 0x18, 0x19, 0x0C, 0x17, 0x19, 0x05, 0x04, + 'ú', 'ú', 0x19, 0x05, 0x10, 0x19, ')', 0x03, 'Ü', 'Ü', 'Ü', 0x1A, + 0x05, 'Û', 'Ý', 0x18, 0x19, 0x0C, 0x17, ' ', 0x0C, ')', ' ', ' ', + 0x00, 'Ü', 0x06, 'Ü', 0x00, 'Ü', 0x0F, 'Ü', 0x06, 'Ü', 0x00, 'Ü', + ' ', ' ', 0x0C, '(', ' ', 0x10, 0x19, '.', 0x03, 0x14, 'ß', 'ß', + 0x0D, 0x13, 'Ü', 'Ü', 'Ü', 0x18, 0x10, 0x19, 0x0C, 0x07, 'Þ', 0x17, + ' ', ' ', 0x00, 'ß', 0x06, 'ß', 0x0F, 'ß', 0x00, 'ß', 0x06, 'ß', + 0x00, 'ß', 0x06, 'ß', 0x00, 'ß', ' ', ' ', 0x07, 0x10, 'Ý', 0x19, + '.', 0x0F, 0x14, 'ú', ' ', ' ', 0x08, 0x10, 'Û', 'Û', 'Ý', 0x18, + 0x19, 0x07, 0x1A, 0x04, 'Ü', 0x17, '°', '°', '°', 0x1A, 0x06, '±', + 0x1A, 0x03, '°', 0x10, 0x1A, 0x04, 'Ü', 0x19, ')', 0x14, 'Ü', 'Ü', + 'Û', 0x10, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 'Ü', 0x17, 0x1A, 0x06, + 'Û', '°', '°', '°', 0x1A, 0x04, '±', '²', 0x1A, 0x04, '°', 0x1A, + 0x05, 'Û', 0x10, 'Û', 'Û', 0x1A, 0x04, 'Ü', 0x19, 0x1F, 'Ü', 0x1A, + 0x06, 'Û', 0x18, 0x19, 0x02, 'Ü', 0x17, 0x1A, 0x06, 'Û', '±', 0x1A, + 0x03, '°', '±', '±', '±', '²', '²', '²', 0x1A, 0x05, '°', 0x1A, + 0x07, 'Û', 0x10, 0x1A, 0x04, 'Û', 0x19, 0x22, 'Ü', 'Û', 'Û', 'Ý', + 0x18, ' ', 'Ü', 0x17, 0x1A, 0x07, 'Û', '°', '°', '°', 'Û', '°', + '°', '±', '±', '²', '²', '²', '±', 0x1A, 0x04, '°', 0x1A, 0x09, + 'Û', 0x10, 'Û', 'Þ', 'Û', 'Û', 'Ý', 0x19, 0x1D, 0x14, 'Ü', 0x10, + 'Ü', 0x1A, 0x04, 'Û', 'Ý', 0x18, 'Û', 0x17, 0x1A, 0x0E, 'Û', '±', + 0x1A, 0x04, '²', 0x1A, 0x0F, 'Û', 0x10, 'Þ', 'Û', 'Û', 'Û', 0x19, + 0x1E, 'ß', 0x1A, 0x04, 'Û', 0x18, 'Û', 0x17, 0x1A, 0x0E, 'Û', '±', + '²', '²', '°', '±', 0x1A, 0x10, 'Û', 0x10, ' ', 'Û', 'Û', 'Û', + 0x19, 0x0A, 0x06, '²', '°', 0x19, 0x13, 0x08, 'Û', 'Û', 'Û', 0x18, + 'Û', 0x17, 'Û', 0x10, ' ', 0x17, 0x1A, 0x0C, 'Û', '±', '²', '²', + 0x1A, 0x12, 'Û', 0x10, ' ', 0x09, 'Û', 'Û', 'Û', 0x19, 0x0A, 0x06, + 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 'Ü', 0x19, 0x10, 0x08, 'Û', + 'Û', 'Û', 0x18, 'Û', ' ', 'Þ', 0x17, 0x1A, '!', 'Û', 0x10, 'Ý', + ' ', ' ', 0x09, 'Û', 'Û', 0x19, 0x0A, 0x06, 'Û', '²', 0x19, 0x02, + 0x0C, 0x14, '°', '±', 'Û', '°', 0x10, 0x19, 0x0B, 0x09, 0x1A, 0x04, + 'Û', 0x18, 0x08, 'Û', ' ', 0x17, 0x1A, 0x22, 'Û', 0x10, 0x19, 0x03, + 0x09, 'Û', 0x19, 0x0A, 0x06, '±', 'Û', ' ', ' ', 0x07, 'Þ', 0x1A, + 0x04, 'Û', 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, + 0x19, 0x02, 0x08, 0x1A, ' ', 'Û', 0x19, 0x04, 0x09, 'Û', 0x19, 0x0A, + 0x06, 0x14, 'ß', 'ß', 0x04, 0x10, 'Ü', 'Ü', 0x07, 0x14, 0x1A, 0x04, + 'ß', 0x04, 0x17, 'Ü', 0x10, 0x19, 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, + 0x05, 'Û', 0x18, 0x19, 0x03, 0x08, 'ß', 'ß', 0x1A, 0x1B, 'Û', 'ß', + 0x19, 0x11, 0x06, 'Û', '±', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, + 0x09, 0x09, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, + 0x1A, 0x09, 'Û', 0x19, 0x04, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x14, + 0x06, '²', '°', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, 0x09, 0x09, + 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x07, 0x08, 0x1A, 0x09, + 'Û', 0x19, 0x06, 'ß', 0x1A, 0x06, 'Û', 'Ü', 0x19, 0x04, 'Ü', 'Ü', + 0x19, 0x0B, 0x06, '±', 'Û', ' ', ' ', 0x07, 0x1A, 0x05, 'Û', 0x19, + 0x09, 0x09, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18, ' ', 0x08, 0x1A, 0x11, + 'Û', 0x19, 0x07, 'ß', 0x1A, 0x0B, 'Û', 0x0C, 0x14, '°', '±', 'Û', + 0x10, 0x19, 0x09, 0x06, '°', '±', 0x19, 0x02, 0x07, 0x1A, 0x03, 'Û', + 0x19, 0x0C, 0x09, 'Û', 'Û', 'Û', 0x18}; + +unsigned char XFOR [162] = { + 0x09, 0x10, 0x19, 0x04, 0x08, '(', ')', 'Â', '(', ')', 0x18, 0x19, + 0x06, '³', 0x18, 0x04, 'Ü', 'Ü', 'Ü', 0x1A, 0x05, 'Û', 'Ý', 0x18, + 0x19, 0x04, 0x01, 0x14, 'Ü', 'Ü', 0x0E, 'Ü', 'Ü', 'Ü', 0x18, 0x10, + 0x19, 0x04, 0x0F, 0x11, 'ú', ' ', ' ', 0x07, 'Û', 'Û', 0x10, 'Ý', + 0x18, 0x19, 0x04, 0x01, 0x17, 'ß', 'ß', 0x07, 0x10, 0x1A, 0x03, 'Û', + 0x18, 0x19, 0x02, 'Ü', 0x1A, 0x06, 'Û', 0x18, 0x19, 0x06, 'Ü', 'Û', + 'Û', 'Û', 0x18, 0x19, 0x02, 0x14, 'Ü', 0x10, 'Ü', 0x1A, 0x04, 'Û', + 'Ý', 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 0x18, 0x19, 0x05, 'Û', + 'Û', 'Û', 0x18, 0x19, 0x05, 'Û', 'Û', 'Û', 0x18, 0x19, 0x04, 0x09, + 0x1A, 0x04, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', + 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, + 0x11, 'Û', 0x10, 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 0x11, 'Û', 0x10, + 0x1A, 0x05, 'Û', 0x18, 0x19, 0x03, 'ß', 0x1A, 0x04, 'Û', 'ß', 0x18, + 0x19, 0x05, 'Û', 'Û', 'Û', 0x18}; + diff -r 000000000000 -r acb5694e93d9 final_isi/fisidemo.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisidemo.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,752 @@ +#include "wrapper.h" + +#include "fisi.h" +#include "fisiansi.h" + +#ifdef TURBOC + #define FAR far +#else + #define FAR +#endif + +extern volatile int taimeri; + +extern int bgcol,txtcol,ansifrom; +extern char buffclass; + +extern char fx_main; /* p„„effu: 1=tunneli */ +extern char fx_main_spex; +extern char fx_3d; +extern char fx_flare; + +extern char FAR *ruutu,*txb,*abb,*vib; + +extern framekey o0[]; + +prforhyb(char*h) +{ + int i; + for(i=80*25;i;i--){ + if((*h==32)||(!*h))if(!(*(h+1)&0xf0)){*h=253;*(h+1)=1;} + h+=2; + } +} + +demoloop() +{ + char lastkey=0; + int dt=0; + int fader=0,fadetype=1; + + while(lastkey!=27){ + if(kbhit()){lastkey=getch(); + +/* if(lastkey=='0'){o0[OY].targ=25*32;o0[OROT].targ=150; + o0[OZOOM].targ=25000;} + if(lastkey=='9')fx_3d=0; + + if(lastkey=='1')o0[OHGT].targ=45*256; + if(lastkey=='2')o0[OHGT].targ=25*256; + if(lastkey=='3')o0[OHGT].targ=5*256;*/ + } + + while(dt=0)if(!(d&3))switch(d>>2){ + case(0):preparebuff(SINGLE);fx_main=SCROLLER; + scroller_init(HORIZON|NOSKRAMBLE); + memset(txb,0,80*25*2); + scr_txr(1); + o0[OHGT].curr=48*256;o0[OHGT].targ=22*256; + o0[OHGT].frac=2048; + o0[OZOOM].curr=o0[OZOOM].targ=10;fx_3d=1; + txtline(txb+80*8,"isi","daddy"); + txtline(txb+80*18,"ei`turhia","wont`wait"); + txtline(txb+80*28,"aikaile","too`long");fader=7;fadetype=1; + b; + case(32):fader=31;fadetype=2;b; + case(64): + memset(txb,0,80*25*2); + txtline(txb+80*5,"isi`laittaa","daddy"); + txtline(txb+80*15,"p{{h{ns{","puts`on`his"); + txtline(txb+80*25,"virtuaalisen","virtual"); + txtline(txb+80*35,"kyp{r{n","helm"); + fader=7;fadetype=3;b; + + case(64+32): + fader=31;fadetype=2;b; + + case(64+40):preparebuff(NONE); + memset(ruutu,0,80*25*2); + uncrunch(SYBER0,ruutu,sizeof(SYBER0)); + b; + + case(64+44): + memset(ruutu,0,80*25*2); + uncrunch(SYBER1,ruutu,sizeof(SYBER1)); + b; + + case(64+48): + memset(ruutu,0,80*25*2); + uncrunch(SYBER2,ruutu,sizeof(SYBER2)); + b; + + case(64+52):preparebuff(SINGLE); + memset(txb,0xee,80*25*2); + fader=31;fadetype=2; + o0[OFLX].curr=o0[OFLX].targ=20*256; + o0[OFLY].curr=o0[OFLY].targ=-15*256;fx_flare=1; + b; + + case(64+58):fader=31;fadetype=2;fx_flare=0;b; + + case(64+64):fx_flare=1; + memset(txb,0,80*25*2); + txtline(txb+80*5,"ja`hetkess{","and"); + txtline(txb+80*15,"h{nest{","instantly"); + txtline(txb+80*25,"tulee","he`becomes"); + fader=7;fadetype=3; + b; + + case(64+64+32):fx_flare=0; + memset(txb,0,80*25*2); + txtline(txb+80*30,"salaper{inen","the"); + txtline(txb+80*40,"","mysterious"); + b; + + case(64+64+32+16): + fx_3d=1;eggine_load(0); + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OROT].targ=800; + o0[OZOOM].targ=31000; + b; + + case(64+64+64): + memset(txb,0,80*25*2); + o0[OY].targ=25*32; + txtline(txb+80*20,"virtuaalimies","virtual`man"); + b; + + case(64+64+64+16): + o0[OROT].targ=760;o0[OROT].frac=512;b; + + case(64+64+64+32): + fadetype=4;fader=1; + fx_3d=1;eggine_load(0); + b; + + case(64+64+64+40): + o0[OZOOM].targ=100;o0[OZOOM].frac=4096; + b; + + case(64+64+64+48):memset(txb,0xff,80*25*2); + b; + + } + + d-=8*128; + if(d>=0)if(!(d&3))switch(d>>2){ + case(0): + fx_3d=fx_flare=0; + preparebuff(HYBRID); + memset(abb,0x0000,80*25*2); + memset(txb,0x0000,80*25*2); + memset(vib,0,80*50); + fx_main=NONE; + uncrunch(VPELU0,abb,sizeof(VPELU0)); + uncrunch(VPELU1,txb,sizeof(VPELU1)); + prforhyb(abb);prforhyb(txb); + ansifrom=2; + atxtline(vib,"kuka`sin{","who`are",0); + atxtline(vib+9*80,"``olet","``you",0); + b; + case(64): + memset(vib,0,80*50); + atxtline(vib,"ja","and",0); + atxtline(vib+9*80,"``miksi`olet","why`have`you",0); + b; + case(64+16): + memset(vib,0,80*50); + atxtline(vib,"vanginnut","captured",0); + atxtline(vib+9*80,"``minut","``me",0); + b; + case(64+32): + ansifrom=0; + memset(txb,0,80*25*2); + uncrunch(VPELU2,txb,sizeof(VPELU2)); + prforhyb(txb); + b; + case(128): + ansifrom=2; + memset(vib,0,80*50); + atxtline(vib,"min{`olen","i`am",1); + b; + case(128+16): + atxtline(vib+9*80,"sinun","your",1); + b; + case(128+32): + memset(vib,0,80*50); + atxtline(vib,"pime{","dark",1); + atxtline(vib+9*80,"puoliskosi","half",1); + b; + case(128+64): + memset(abb,0x0000,80*25*2); + memset(txb,0x0000,80*25*2); + memset(vib,0,80*50); + ansifrom=2; + uncrunch(VMPELU0,abb,sizeof(VMPELU0)); + uncrunch(VMPELU1,txb,sizeof(VMPELU1)); + prforhyb(abb);prforhyb(txb); + atxtline(vib,"musta","the`black",0); + atxtline(vib+9*80,"``pelu","``pelu",0); + b; + } + + d-=((128+128)*4); + if(d>=0)if(!(d&3))switch(d>>2){ + case(0): + memset(txb,0,80*25*2); + preparebuff(SINGLE); + scroller_init(HORIZON|NOSKRAMBLE); + scr_txr(1); + fx_main=SCROLLER; + fx_main_spex=1; + fx_3d=1;eggine_load(0); + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OY].frac=2048; + + o0[OZOOM].curr=25000; + o0[OZOOM].targ=100;o0[OZOOM].frac=1024; + + fader=7;fadetype=1; + memset(txb,0,80*25*2); + txtline(txb+9*80,"isi","daddy"); + txtline(txb+18*80,"etsii","looks`for"); + txtline(txb+27*80,"poikaansa","his`son"); + txtline(txb+36*80,"urheasti","bravely"); + b; + + case(32):fader=31;fadetype=2;b; + + case(48):o0[OHGT].targ=5*256;o0[OHGT].frac=4096;b; + + case(64):eggine_load(1); + memset(txb,0,80*25*2); + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OY].frac=2048; + o0[OZOOM].curr=20000;o0[OZOOM].targ=27000; + o0[OROT].targ=1000;o0[OROT].frac=4096; + + txtline(txb+2*80,"mutta","but"); + txtline(txb+11*80,"pimeyden","the`dark"); + txtline(txb+20*80,"varjostajat","shadows"); + txtline(txb+29*80,"huomaavat","notice"); + txtline(txb+38*80,"h{net","him"); + fader=7;fadetype=1; + b; + case(64+32):fader=31;fadetype=2; + o0[OROT].targ=700;o0[OROT].frac=2048; + o0[OROT].frac=1024; + b; + case(64+48):o0[OROT].targ=1000;b; + case(64+56):o0[OROT].targ=200;b; + case(64+64):o0[OZOOM].targ=100;o0[OZOOM].frac=4096;b; + +/* case(64+64): + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OY].frac=4096; + o0[OROT].targ=50; + o0[OZOOM].curr=31000; + o0[OZOOM].targ=100;o0[OZOOM].frac=4096; + b;*/ + case(64+64+16): + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OY].frac=4096; + o0[OROT].targ=500; + o0[OZOOM].curr=31000; + o0[OZOOM].targ=100;o0[OZOOM].frac=4096; + memset(txb,0,80*25*2); + txtline(txb+8*80,"pimeyden","there`is"); + txtline(txb+18*80,"varjostajia","a`lot`of"); + txtline(txb+28*80,"tulee","dark"); + txtline(txb+38*80,"paljon","shadows"); + fader=7;fadetype=1; + b; + case(64+64+32): + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OY].frac=4096; + o0[OROT].targ=50; + o0[OZOOM].curr=31000; + o0[OZOOM].targ=100;o0[OZOOM].frac=4096; + + b; + case(64+64+48): + o0[OY].curr=70*32;o0[OY].targ=25*32; + o0[OY].frac=4096; + o0[OROT].targ=500; + o0[OZOOM].curr=31000; + o0[OZOOM].targ=100;o0[OZOOM].frac=4096; + fader=31;fadetype=2; + b; + case(64+64+64): + memset(txb,0,80*25*2); + txtline(txb+8*80,"ja`isi","and`daddy"); + txtline(txb+18*80,"on`nyt","is`now"); + txtline(txb+28*80,"katalassa","in`quite"); + txtline(txb+38*80,"pinteess{","`a`trouble"); + fader=7;fadetype=1; + b; + case(64+64+64+32):fader=31;fadetype=2;b; + } + + d-=256*4; + if(d>=0)if(!(d&3))switch(d>>2){ + case(0): + preparebuff(HYBRID); + memset(txb,0,80*25*2);ansifrom=2; + uncrunch(P_SPR,txb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR,txb+60*2+10*160,sizeof(MP_SPR)); + memset(abb,0,80*25*2); + uncrunch(P_SPR,abb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR1,abb+60*2+10*160,sizeof(MP_SPR1)); + prforhyb(abb);prforhyb(txb); + fx_main=0;fx_3d=0; + memset(vib,0,80*25*2); + atxtline(vib,"lapsena","as`children",1); + atxtline(vib+9*80,"olimme`yksi`","we`were`one``",1); + b; + + case(32): + uncrunch(SINIPELU,abb+20*2+7*160,sizeof(SINIPELU)); + b; + + case(64): + ansifrom=2;memset(abb,0,80*25*2); + uncrunch(P_SPR,abb+11*160,sizeof(P_SPR1)); + uncrunch(MP_SPR1,abb+60*2+10*160,sizeof(MP_SPR1)); + prforhyb(abb); + memset(vib,0,80*25*2); + atxtline(vib,"sitten`meid{t","then`we`were",1); + atxtline(vib+9*80,"erotettiin`","separated``",1); + b; + + case(96): +/* uncrunch(JINJANG,abb+20*2+7*160,sizeof(JINJANG));*/ + memset(vib,0,80*25*2); + atxtline(vib,"sin{`olet","you`are`good",1); + atxtline(vib+9*80,"hyv{```","i`am`evil",1); + atxtline(vib+18*80,"min{`paha`","",1); + b; + + case(96+16): + memset(vib,0,80*25*2); + atxtline(vib,"sin{`valkea","you`are`white",1); + atxtline(vib+9*80,"min{`musta`","i`am`dark",1); + b; + +/* case(96+24): + + b;*/ + + case(128): + ansifrom=2;memset(abb,0,80*25*2); + uncrunch(P_SPR,abb+11*160,sizeof(P_SPR1)); + uncrunch(MP_SPR1,abb+60*2+10*160,sizeof(MP_SPR1)); + prforhyb(abb); + memset(vib,0,80*25*2); + atxtline(vib,"meid{n","we`should",1); + atxtline(vib+9*80,"pit{isi`taas","unite`again",1); + atxtline(vib+18*80,"yhdisty{``","",1); + b; + + case(128+32): + uncrunch(JINJANG,abb+20*2+7*160,sizeof(JINJANG)); + prforhyb(abb); + b; + + case(128+64): + memset(txb,0,80*25*2);ansifrom=2; + uncrunch(P_SPR,txb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR,txb+60*2+10*160,sizeof(MP_SPR)); + memset(abb,0,80*25*2); + uncrunch(P_SPR1,abb+11*160,sizeof(P_SPR1)); + uncrunch(MP_SPR,abb+60*2+10*160,sizeof(MP_SPR)); + prforhyb(abb);prforhyb(txb); + memset(vib,0,80*25*2); + atxtline(vib,"mutta","but",0); + atxtline(vib+9*80,"mit{`siit{","what`would`it",0); + atxtline(vib+18*80,"``seuraisi","``lead`to",0); + b; + + case(128+64+32): + uncrunch(MP_SPR2,abb+60*2+10*160,sizeof(MP_SPR2));ansifrom=1; + memset(vib,0,80*25*2); + atxtline(vib,"maailmanloppu","the`end",1); + atxtline(vib+9*80,"","of`the`world",1); + b; + } + + d-=4*256; + if(d>=0)if(!(d&3))switch(d>>2){ + case(0):preparebuff(SINGLE);fx_main=SCROLLER; + scroller_init(HORIZON|NOSKRAMBLE); +/* scr_txr(4);*/ + memset(txb,0,80*25*2);txtcol=0; + o0[OHGT].curr=o0[OHGT].targ=256*25;o0[OHGT].frac=2048; + o0[OFLX].curr=-50*256; + o0[OFLY].curr=-30*256; + o0[OFLX].targ=10*256; + o0[OFLY].targ=-20*256; + fx_3d=fx_flare=1;eggine_load(0); + o0[OZOOM].curr=100; + o0[OZOOM].targ=25000; + o0[OZOOM].frac=4096; + o0[OROT].curr=500; + o0[OX].curr=40*32;o0[OY].curr=25*32; + + case(16):o0[OROT].targ=80; + b; + case(32):o0[OY].targ=70*32;o0[OZOOM].targ=15000; + o0[OFLX].targ=-20*256;o0[OFLY].targ=-7*256; + o0[OHGT].targ=10*256; + b; + case(40):eggine_load(1); + o0[OZOOM].curr=100;o0[OZOOM].targ=31000; + o0[OY].curr=o0[OY].targ=25*32; + o0[OFLX].targ=0*256; + b; + case(48): + o0[OZOOM].targ=25000; + b; + case(56): + memset(txb,0,80*50); + txtline(txb+9*80,"isi","daddy"); + txtline(txb+18*80,"on`nyt","is`now"); + txtline(txb+27*80,"saarrettu","trapped"); + fader=7;fadetype=1; + b; + case(64+16):fader=31;fadetype=2;b; + case(64+32): + o0[OROT].targ=400;o0[OROT].frac=4096; + memset(txb,0xee,80*50);fader=7;fadetype=1; + b; + case(64+36):fader=7;fadetype=1; + o0[OROT].targ=10;o0[OFLX].targ=10*32; + o0[OFLY].targ=-20*32;b; + case(64+40):fader=31;fadetype=2; + eggine_load(0);o0[OY].curr=10*32;o0[OY].targ=30*32; + o0[OROT].targ=600; + fx_flare=0; + o0[OHGT].curr=o0[OHGT].targ=40*256; + o0[OZOOM].curr=o0[OZOOM].targ=20000; + b; + case(64+48):o0[OY].targ=20*32;b; + case(64+56):o0[OZOOM].targ=30000;b; + case(64+64):o0[OHGT].targ=25*256;o0[OY].targ=30*32; + memset(txb,0,80*50); + txtline(txb+4*80,"onneksi","fortunately"); + txtline(txb+14*80,"isill{`on","daddy`has"); + txtline(txb+24*80,"salainen","a`secret"); + txtline(txb+34*80,"ase","weapon"); + fader=7;fadetype=1; + b; + case(64+64+16):o0[OROT].targ=500; + fx_flare=1;o0[OFLX].curr=-40*256;o0[OFLX].targ=30*256;b; + case(64+64+24):fader=31;fadetype=2;b; + case(64+64+32): + preparebuff(HYBRID); + memset(txb,0,80*50); + memset(abb,0,80*50); + uncrunch(WINNUKE0,txb,sizeof(WINNUKE0)); + uncrunch(WINNUKE1,abb,sizeof(WINNUKE1)); + ansifrom=1; + fx_flare=0;eggine_load(1); + o0[OY].targ=o0[OY].curr=15*32; + o0[OROT].curr=500;o0[OROT].targ=200; + o0[OZOOM].curr=o0[OZOOM].targ=25000; + o0[OHGT].curr=o0[OHGT].targ=40*256; + b; + case(64+64+32+16):ansifrom=0;b; + case(64+64+32+24): + preparebuff(SINGLE); + o0[OZOOM].curr=o0[OZOOM].targ=25000; + o0[OROT].curr=o0[OROT].targ=500; + o0[OHGT].curr=o0[OHGT].targ=15*256; + fx_flare=1; + b; + case(64+64+32+32):o0[OROT].targ=200; + o0[OHGT].targ=45*256; + o0[OFLY].targ=-25*256;o0[OFLX].targ=-30*256; + + b; + case(64+64+32+36):o0[OZOOM].targ=100; + fx_flare=1; + + o0[OFLY].curr=(15-25)*256; + o0[OFLX].curr=0; + + o0[OFLY].targ=(35-25)*256; + o0[OFLX].targ=(10-40)*256; + o0[OY].targ=35*32; + o0[OX].targ=10*32; + + o0[OX].frac=8192; + o0[OY].frac=8192; + o0[OFLX].frac=8192; + o0[OFLY].frac=8192; + b; + case(64+64+32+48):memset(txb,0xcc,80*50); + fader=31;fadetype=2;fx_flare=0; + b; + case(64+64+32+52):fx_flare=1;b; + case(64+64+32+56):fader=31;fadetype=2;fx_flare=0;b; + } + + d-=4*256; + + if(d>=0)if(!(d&3))switch(d>>2){ + case(0): + eggine_load(0); + o0[OHGT].targ=5*256; + o0[OZOOM].targ=o0[OZOOM].curr=28000; + o0[OROT].targ=300; + o0[OX].curr=o0[OX].targ=40*32; + o0[OY].curr=60*32; + o0[OY].targ=25*32; + + b; + case(16):o0[OZOOM].targ=100; + memset(txb,0,80*50); + txtline(txb+4*80,"isi`jatkaa","daddy"); + txtline(txb+14*80,"matkaansa","journeys`on"); + txtline(txb+24*80,"mustan`pelun","to`black`pelu"); + txtline(txb+34*80,"linnakkeelle","fortress"); + fader=7;fadetype=1; + b; + case(48):fader=31;fadetype=2;b; + case(64):preparebuff(HYBRID);fx_main=0; + memset(txb,0,80*25*2);ansifrom=0; + uncrunch(P_SPR,txb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR2,txb+30*2+10*160,sizeof(MP_SPR2));b; + case(64+16): + memset(txb,0,80*25*2); + memset(vib,0,80*25*2); + uncrunch(P_SPR,txb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR2,txb+27*2+10*160,sizeof(MP_SPR2)); + atxtline(vib,"isiiii","daddeeeee",0); + atxtline(vib+9*80,"pelasta`jo","save`meeee",0); + prforhyb(txb); + b; + case(64+32): + memset(txb,0,80*25*2); + uncrunch(P_SPR,txb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR2,txb+24*2+10*160,sizeof(MP_SPR2)); + prforhyb(txb); + b; + case(64+48): + memset(txb,0,80*25*2); + uncrunch(P_SPR,txb+11*160,sizeof(P_SPR)); + uncrunch(MP_SPR2,txb+2*21+10*160,sizeof(MP_SPR2)); + b; + case(64+56):preparebuff(SINGLE);fx_main=SCROLLER; + txtcol=0;memset(vib,0,80*25*2); + o0[OHGT].targ=5*256; + o0[OZOOM].curr=100;o0[OZOOM].targ=28000; + o0[OROT].curr=200;o0[OROT].targ=700; + o0[OFLX].curr=30*256;o0[OFLY].curr=-15*256; + o0[OFLX].targ=-30*256;o0[OFLY].targ=15*256; + o0[OY].targ=40*32; + b; + case(128+5): + o0[OY].targ=60*32;o0[OZOOM].targ=20000;b; + case(128+16): + preparebuff(HYBRID);fx_main=0;ansifrom=0; + fx_3d=0; + memset(vib,0,80*50); + memset(txb,0,80*50); + uncrunch(SAVE0,txb,sizeof(SAVE0));b; + case(128+20): + memset(txb,0,80*50); + uncrunch(SAVE1,txb,sizeof(SAVE1));b; + case(128+24): + memset(txb,0,80*50); + uncrunch(SAVE2,txb,sizeof(SAVE2));b; + case(128+28): + memset(txb,0,80*50); + uncrunch(SAVE3,txb,sizeof(SAVE3));b; + case(128+32): + memset(txb,0,80*50); + uncrunch(SAVE4,txb,sizeof(SAVE4));b; + case(128+36): + memset(txb,0,80*50); + uncrunch(SAVE5,txb,sizeof(SAVE5));b; + case(128+48): + prforhyb(txb); + atxtline(vib,"oho","uh`oh",0);b; + case(128+64): + memset(vib,0,80*50); + atxtline(vib,"isiiii","daddeeee",1);b; + case(128+64+16): + uncrunch(XFOR,txb+50*160,sizeof(XFOR)); + memset(vib,0,80*50); + atxtline(vib,"pelastit","you`saved",1);b; + case(128+64+32): + /*uncrunch(XFOR,txb+50*160,sizeof(XFOR));*/ + memset(vib,0,80*50); + atxtline(vib,"minut`ja","me`and",1);b; + case(128+64+48): + /*uncrunch(XFOR,txb+50*160,sizeof(XFOR));*/ + memset(vib,0,80*50); + atxtline(vib,"maailman","the`world``",1);b; + b; + case(256):preparebuff(SINGLE);memset(txb,0,80*50); + memset(abb,0,80*50);memset(vib,0,80*50); + txtline(txb+8*80,"mites`nyt","how`can"); + txtline(txb+24*80,"noin`k{vi","this`happen"); + fader=31;fadetype=1; + b; + case(256+64): + memset(txb,0,80*50); + txtline(txb+6*80,"no`eip{`ole","well"); + txtline(txb+16*80,"meid{n","thats`not"); + txtline(txb+26*80,"ongelma","our`problem");b; + case(256+128): + memset(txb,0,80*50); + txtline(txb+22*80,"the`end","the`end");b; + case(256+128+64):lastkey=27;b; + } + + if(fader){ + int f=fader;int joo[8]={ + 0x0000, + 0x0808, + 0x0707, + 0x7070, + 0x7777, + 0x7f7f, + 0xf7f7, + 0xffff }; + if(fadetype==2)f=7-f/4; + if(fadetype==3)f=f/2; + if(fadetype==4){f&=7;fader+=2;} + + if(f>7)f=7;if(f<0)f=0; + txtcol=joo[7-f]; + fader--; + } + +/* + +^@pwp^@pwp^@final`isi^@final`isi + +^@code^@code^@musax^@musax^@gfx^@gfx^@viznut^@viznut + +^@t{{ll{^@t{{ll{^@on`ihan^@on`ihan^@tyhm{{^@tyhm{{^@ + +*/ + + +/***********************************************************/ + + dt++; + } + + if (buffclass) effu(taimeri); +}} + + diff -r 000000000000 -r acb5694e93d9 final_isi/fisidemo.o Binary file final_isi/fisidemo.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/fisieffu.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisieffu.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,487 @@ +#include "wrapper.h" + +#include "fisi.h" + +/* #include "dos.h" */ + +#define uchar unsigned char +#define uint unsigned int +#define sint signed int + +#include "sini.h" + +extern void waitretrace(); +extern signed int mul32(signed int a,signed int b); + +/*************** setup *******************/ + + char setup_rtc=1; + char setup_force25=0; + char setup_nohibit=0; + +/*************** multimedia interface **********/ + + char buffclass; /* preparebuff == setmode etc */ + + int bgcol=0; + int txtcol=0; + int ansifrom=0; + + /*************/ + + char fx_main=0; + char fx_main_spex=0; + char fx_3d=0; + char fx_flare=0; + + /*************/ + +uchar txl[6][20]; + +/*************** cOnstANTZ eTC *************/ + +#ifdef MSDOS + char FAR *ruutu = (char *) 0xb8000000; + #define monoruutu (char*)0xb0000000; +#else + uchar ruutu__[80*25*2]; + uchar*ruutu=ruutu__; +#endif + +uchar symtab[50][80]; +uchar videobuf[80*50]; /* 80x50! */ +uchar textbuf[80*50]; +uchar ansibuf[80*25*2]; /* 80x25! */ +/*char xorru[120*75];*/ +uchar*abb=ansibuf; +uchar*txb=textbuf; +uchar*vib=videobuf; + +/*********/ + +/***************.: STATiK dEMO mAiNLOOP eT sETUppES :.******************/ + +extern int taimeri; + +setmono() { + #ifdef MSDOS + ruutu=monoruutu; + #endif +} + +/******************.: tABLES, pRECALX :.*********************/ + +char fadetab[256]; /* fadetaulu on ihan hY™DYKE */ +fadetab_make(char *ft) +{ + int s;char d; + for(s=0;s<256;s++){ + switch(s&0x88){ + case(0x88):d=s&~8;break; /* 99 -> 91 */ + case(0x80):d=(s&0x70)|(s>>4);break; /* 91 -> 19 */ + case(0x08):if(s&0xf0)d=((s&7)<<4)|(s&7); + else d=(s&7)<<4; break; /* 19 -> 11 */ + /* 09 -> 10 */ + case(0x00): + if((s&0xf0)&&(s&0x0f))d=s&0xf0; /* 11 -> 10 */ + else d=s>>4; /* 10 -> 01 */ + break; + } + *ft++=d;} +} + +uchar sqrt[256]; +sqrt_make() +{ + uint l=0,l2=0,sq; /* m„„rjoukko: 0..255 */ + /* arvojoukko: 0..255 (=<<8) */ + for(;l<256;l++){ + sq=(l*l)>>8; + while(l2<=sq) sqrt[l2++]=l; + } + while(l2<=255) sqrt[l2++]=255; +} + +/************************ xORRUTUS *************************/ + +/************************* TUNNELZ ************************/ +/************************* TUNNELZ ************************/ +/************************* TUNNELZ etc ******************/ + +char lenssprite[256]={ +0x00,0x00,0x00,0x00,0x00,0x88,0xff,0xff,0xff,0xff,0x88,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0x00,0x00,0xff,0xff,0xff,0xff,0x77,0x88,0x88,0x77,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0xff,0xff,0xff,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0xff,0xff,0xff,0x00, +0x88,0xff,0xff,0xff,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xff,0xff,0xff,0x88, +0xff,0xff,0xff,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0xff,0xff,0xff, +0xff,0xff,0xff,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0xff,0xff,0xff, +0xff,0xff,0xff,0x88,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x88,0xff,0xff,0xff, +0xff,0xff,0xff,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0xff,0xff,0xff, +0x88,0xff,0xff,0xff,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0xff,0xff,0xff,0x88, +0x00,0xff,0xff,0xff,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0xff,0xff,0xff,0x00, +0x00,0x00,0xff,0xff,0xff,0xff,0x77,0x88,0x88,0x77,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x77,0xff,0xff,0xff,0xff,0x77,0x00,0x00,0x00,0x00,0x00 +}; + + +/* +symtab_tunnel() +{ + int x,y; + uchar*d=symtab[0]; + for(y=0;y<50;y++) + for(x=0;x<80;x++){ + sint r=(x-40)*(x-40)+(y-25)*(y-25); + *d++=sqrt[r/10]; + } +} + +uchar tunxlat[4*16]={ + 0x00,0x00,0x00,0x00, + 0x01,0x01,0x10,0x10, + 0x11,0x11,0x11,0x19, + 0x19,0x91,0x99,0xff, + + 0x00,0x08,0x80,0x88, + 0x87,0x78,0x77,0x7f, + 0xff,0xff,0xff,0xff, + 0xfe,0xef,0xee,0xe6, + + 0x00,0x00,0x00,0x00, + 0x02,0x02,0x20,0x20, + 0x20,0x22,0x22,0x22, + 0x2a,0x2a,0xa2,0xa2, + + 0x00,0x08,0x80,0x88, + 0x87,0x78,0x77,0x7f, + 0xff,0xff,0xff,0xff, + 0xfe,0xef,0xee,0xe6, + }; + + +xorrutab() +{ + int x,y; + uchar*d=xorru; + for(y=0;y<75;y++) + for(x=0;x<120;x++){ + char joo; + sint r=(x-60)*(x-60)+(y-37)*(y-37); + r=sqrt[r/20]; + joo=tunxlat[(r>>3)&15]; + if(r&16)joo^=0xcc; + *d++=joo; + } +} + +do_xorru(int t) +{ + sint x,y,zoom,q=t/6; + uchar*s0,*s1; + uchar*d=videobuf; + + x=sini[t&255];y=sini[(t+64)&255]; + x=20+(x/4);y=12+(y/10); + s0=xorru+x+120*y; + + x=sini[(-t+q+128+47)&255];y=sini[(-t+q+128+64+22)&255]*zoom; + x=20+(x/4);y=12+(y/10); + s1=xorru+x+120*y; + + xorrase(s0,s1,videobuf,bgcol); +} + +char paletti[255]; + +dotunneltxt(int t) +{ + int i,j=0;uchar*d=paletti; + for(i=64;i;i--){ + j+=i+192; + *d++=fadetab[tunxlat[((t+(j>>6))>>4)&63]|bgcol]; + } + for(i=192;i;i--){ + j+=i; + *d++=tunxlat[((t+(j>>6))>>4)&63]|bgcol; + } +} +*/ + +/* +tunxshl() +{ + int l; + for(l=0;l<16;l++) tunxlat[l]<<=1; +} +*/ + +/* ^^3 ^^2 */ + + +/******************.: eFFECTZ hANDLER :.*********************/ + +char wirez[16]={ + ' ', '¼', 'È', 'Í', '»', 'º', 'Î', 'É', + 'É', 'Î', 'º', '»', 'Í', 'È', '¼', ' ' }; + +char zbpalli[]={ + 0x00,0x01,0x10,0x11,0x13,0x31,0x33,0x3c,0xc3,0xcc,0xcf,0xfc,0xff}; + +int fps=0,framez,lasttik=0; + +preparebuff(int c) +{ + if(c!=buffclass) + switch(c){ + case(NONE):case(HYBRID):txtmode(0); + memfill(ruutu,0x0000,80*25*2); + memfill(ansibuf,253,80*25*2); + break; + + case(SINGLE): + txtmode(1-setup_force25); + if(!setup_force25)memfill(ruutu,176+256*176,80*50*2); + else memfill(ruutu,223+256*223,80*25*2); + break; + } + buffclass=c; +} + +/* +txtmode(int c) +{ + #ifdef MSDOS + _AX=0x0003;_BX=0;geninterrupt(0x10); + _AX=0x1003;_BX=0;geninterrupt(0x10); + if (c){_AX=0x1112;_BX=0;geninterrupt(0x10);} + #else + #endif +} +*/ + +/**********************************/ + +framekey o0[7]={ + 40*32,40*32,1024, /* OX */ + 25*32,25*32,1024, /* OY */ + 25000,25000,1024, /* OZOOM */ + 0,0,1024, /* OROT */ + + 25*256,25*256,4096,/* OHGT */ + 0*256,0*256,4096,/* OFLX */ + 0*256,0*256,4096 /* OFLY */ +}; + +char ltcols[]={ + 0x00, + 0x00, + 0x00, + 0x80, + 0x00, + 0x08, + 0x88, + 0x88, + 0x87, + 0x78, + 0x77, + 0x87, + 0x7e, + 0xe7, + 0xe6, + 0xee, + 0xef, + 0xfe, + 0xf7, + 0xff, + 0xff, + 0xff, + 0xff +}; + +uchar*ltloc; +doltsrc(char*b,int x,int y,int lev) +{ + int i;char*tmp; + x+=40;y+=25; + b+=x+y*80;ltloc=b; + + *b=0xff; + + tmp=b; + i=lev;if(i>x-1)i=x-1; + if(i>0) + while(i--){tmp--;*tmp|=ltcols[i+(rand()&3)];} + tmp=b; + i=lev;if(i>79-x)i=79-x; + if(i>0) + while(i--){tmp++;*tmp|=ltcols[i+(rand()&3)];} + + tmp=b; + i=lev;if(i>y-1)i=y-1; + if(i>0) + while(i--){tmp-=80;*tmp|=ltcols[i+(rand()&3)];} + + tmp=b; + i=lev;if(i>49-y)i=49-y; + if(i>0) + while(i--){tmp+=80;*tmp|=ltcols[i+(rand()&3)];} +} + +/********************************************/ + +psetpic(char *buf, char *pic, sint x, sint y, int xsize, int ysize,int method) +{ + sint xstart=0,ystart=0,xclip=xsize,yclip=ysize; + x-=(xsize>>1);y-=(ysize>>1); + + if (x>=0-xsize) if (x<=80+xsize) + if (y>=0-ysize) if (y<=50+ysize){ + + if (x<0){xstart=0-x;xclip-=xstart;x=0;} + if (y<0){ystart=0-y;yclip-=ystart;y=0;} + + if (x+xclip>79) xclip-=abs((x+xclip)-79); + if (y+yclip>49) yclip-=abs((y+yclip)-49); + + if (xclip>0) if (yclip>0) + picmov(pic+xsize*ystart+xstart, + buf+y*80+x, + xsize,xclip,yclip,method); +}} + +char lensb[256],lensg[256],lensr[256]; + +lflare_do(signed int x,signed int y) +{ + if(abs(x)<40*4)if(abs(y)<25*4) + if(*ltloc==0xff){ + doltsrc(videobuf,(x+(rand()&1)) >>2,(y+(rand()&1)) >>2,20); + psetpic(videobuf,lensr,40-(x>>3),25-(y>>3),16,16,1); + psetpic(videobuf,lensb,40-(x>>2),25-(y>>2),16,16,1); + psetpic(videobuf,lensg,40-(x>>1),25-(y>>1),16,16,1); + } +} + +flarez_init() +{ + char*s=lenssprite; + char*d0=lensb,*d1=lensg,*d2=lensr; + int i; + for(i=256;i;i--){*d0++=*s&0x9c; + *d1++=*s&0x9a;*d2++=*s++&0xec;} +} + + +do3ddezign(int tskip) +{ + int i; + for(i=0;i<7;i++){ + o0[i].curr+= + tskip*mul32(o0[i].targ-o0[i].curr,o0[i].frac); + } + + if(o0[OZOOM].curr>100)eggine_do(videobuf,o0[OROT].curr&255, + o0[OZOOM].curr,o0[OX].curr,o0[OY].curr); +} + +precalx() +{ +/* cprintf("cREATiNG!!! ");*/ + fillbuf(textbuf,0,80*50); + eggine_init(); + flarez_init(); +} + +effu(int t) +{ + static int lastt=0; + char*ggg; + if (setup_rtc) retracecheck(); + + switch(buffclass){ + case(SINGLE): + #ifdef MSDOS + if(!setup_force25) + #endif + if(txtcol) + attr2dump(textbuf,videobuf,ruutu+1, + 80*50,txtcol); + else + attrdump(videobuf,ruutu+1,80*50); + #ifdef MSDOS + else{ + int z=0xf0f0;if(setup_nohibit)z=0x7070; + if(!txtcol) + dump16(videobuf,ruutu,z);else + dump216(textbuf,videobuf,ruutu,txtcol,z); + } + #endif + break; + + case(HYBRID): + if(ansifrom)ggg=ansibuf;else ggg=textbuf; + if(ansifrom==2)if(t&16)ggg=textbuf; + dumphybrid(ggg,videobuf,ruutu); + break; + } + +/* framez++;gotoxy(1,1);textcolor(15);cprintf("%i %i %i ..%i ",taimeri,buffclass,fps,fx_3d); + if (taimeri>lasttik+70) { lasttik=taimeri;fps=framez;framez=0;}*/ + + /*** EFFUEZ ***/ + +/* o0[OFLX].curr=sini[(t/3)&255]*30; + o0[OFLY].curr=sini[(t+64)&255]*30;*/ + + if (buffclass){ + int c=bgcol; + if(buffclass==1)c*=0x101; + + /*if(fx_main==NONE)fillbuf(videobuf,c,80*50);*/ + + if(fx_main==SCROLLER)scroller_do(videobuf,t,o0[OHGT].curr>>8); + + if(fx_flare) + doltsrc(videobuf,o0[OFLX].curr>>8,o0[OFLY].curr>>8,10); + if(fx_3d)do3ddezign(t-lastt); + if(fx_flare)lflare_do(o0[OFLX].curr>>6,o0[OFLY].curr>>6); + } + /**************/ + + + lastt=t; +} + +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ +/*****************************************/ + diff -r 000000000000 -r acb5694e93d9 final_isi/fisieffu.o Binary file final_isi/fisieffu.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/fisifont.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisifont.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,281 @@ +#include "wrapper.h" + +char setup_english; + +char phont[]= +{ +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, + +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0xff,0xff,0xff,0x00, +0x00,0xff,0xff,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, + +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0xff,0xff,0xff,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, + +0xff,0xff,0xff,0xff,0xff,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, + +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0x00,0xff,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0x00,0xff,0xff,0xff,0xff,0x00, + +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, + +0x00,0xff,0xff,0xff,0xff,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0xff,0xff,0xff,0xff,0x00, + +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0x00,0xff,0xff,0xff,0xff,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, + +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, + +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0xff,0x00,0xff,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0xff,0x00,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, + +0x00,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, +0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x00,0x00, + +0x00,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0x00,0xff,0xff,0xff,0xff,0x00, + +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0x00,0xff,0xff,0x00,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, + +0x00,0xff,0xff,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0x00,0x00,0x00, + +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, +0xff,0x00,0xff,0x00,0xff,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0x00,0xff,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0x00,0xff,0x00,0x00, +0x00,0x00,0xff,0x00,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0xff,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0xff,0xff,0xff,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, + +0xff,0xff,0xff,0xff,0xff,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0xff,0xff,0x00,0x00,0x00, +0x00,0xff,0xff,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, + +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0xff,0x00,0x00,0xff,0xff,0x00, +0x00,0xff,0xff,0xff,0x00,0x00, + +0x00,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0xff,0xff,0x00, +0x00,0x00,0x00,0xff,0xff,0x00, +0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0xff,0xff,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0x00, + +0x00,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0xff,0xff,0x00,0x00,0xff,0x00, +0x00,0xff,0xff,0xff,0x00,0x00 +}; + +addchar(char *buf,char *c) +{ + int x,y; + for(y=7;y;y--){ + for(x=6;x;x--)*buf++=*c++; + buf+=80-6;} +} + +txtline(char *buf,char *txt,char *txten) +{ + if(setup_english)txt=txten; + buf+=40-3*strlen(txt); + while(*txt){addchar(buf,&phont[7*6*(*txt-'`')]);buf+=6;txt++;} +} + +atxtline(char *buf,char *txt,char *txten,int align) +{ + if(setup_english)txt=txten; + if(align==1)buf+=79-6*strlen(txt); + while(*txt){addchar(buf,&phont[7*6*(*txt-'`')]);buf+=6;txt++;} +} + +clrline(char*buf) +{ + memset(buf,0,8*80); +} diff -r 000000000000 -r acb5694e93d9 final_isi/fisifont.o Binary file final_isi/fisifont.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/fisimain.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisimain.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,35 @@ +#include +#include +#include "../pwplib/pwplib.h" + +char setup_english=0; + +extern void playtick(); + +int main(int argc,char**argv) +{ + if(!pwplib_init(&argc,argv))return 1; + + pwpwrite("final isi (1st at abduction '98 pc introcompo)\n"); + + pwplib.videobuf.width=80; + pwplib.videobuf.height=50; + + if(!pwplib.setup[SETUP_NOSOUND]) + pwplib.player=playtick; + + precalx(); + + pwpwrite(setup_english?"using the english language\n" + :"puhumme suomea\n"); + + pwplib_startup(); + + demoloop(); + + timer_off(); + + pwplib_end(); + + return 0; +} diff -r 000000000000 -r acb5694e93d9 final_isi/fisimain.o Binary file final_isi/fisimain.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/fisimusa.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisimusa.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,142 @@ +char patord[]={ + + 0,0,1,1,2,3, /* intropart */ + 6,7,8,9, /* isi #0 */ + 0,0,14,14, /* pelu #0 */ + + 6,7,8,9, + + 0,0,14,14, /* pelu #1 */ + + 10,11,12,13,6,7,8,9, + + 4,4,4, + + 5,5,15,15,16,17,4 /* not used */ + }; + +char trax[][3][64]={ + +/***************************** iNTRO pART ******/ + +/* PATTERN 0 */ +32,254,32,254,32,254,32,254,32,255,255,254,32,255,255,254,32,254,32,254,32,254,32,254,32,255,255,254,32,255,255,254,35,254,35,254,35,254,35,254,35,255,255,254,35,255,255,254,34,254,34,254,34,254,34,254,35,255,255,254,50,254,34,254, +39,254,39,254,39,254,39,254,39,255,255,254,39,255,255,254,39,254,39,254,39,254,39,254,39,255,255,254,39,255,255,254,42,254,42,254,42,254,42,254,42,255,255,254,42,255,255,254,41,254,41,254,41,254,41,254,42,255,255,254,57,254,41,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +/* PATTERN 1 */ +32,254,32,254,32,254,32,254,32,255,255,254,32,255,255,254,32,254,32,254,32,254,32,254,32,255,255,254,32,255,255,254,35,254,35,254,35,254,35,254,35,255,255,254,35,255,255,254,34,254,34,254,34,254,34,254,35,255,255,254,50,254,34,254, +80,255,255,254,71,254,80,254,83,254,80,254,71,254,80,254,83,255,255,254,80,254,71,255,255,254,80,254,71,254,80,254,83,255,255,254,74,254,83,254,82,254,74,254,82,254,83,254,82,255,255,254,85,254,82,255,255,254,73,254,82,254,82,254, +64,254,67,254,71,254,67,254,64,254,255,255,67,254,255,255,64,254,67,254,71,254,67,254,64,254,255,255,67,254,255,255,67,254,71,254,74,254,71,254,67,254,74,254,71,254,67,254,66,254,69,254,73,254,69,254,67,254,255,255,66,254,67,254, + +/* PATTERN 2 */ +37,254,37,254,37,254,37,254,37,255,255,254,37,255,255,254,37,254,37,254,37,254,37,254,37,255,255,254,37,255,255,254,40,254,40,254,40,254,40,254,40,255,255,254,40,255,255,254,39,254,39,254,39,254,39,254,40,255,255,254,55,254,39,254, +85,255,255,254,80,254,85,254,88,254,85,254,80,254,85,254,88,255,255,254,85,254,80,255,255,254,85,254,80,254,85,254,88,255,255,254,83,254,88,254,87,254,83,254,87,254,88,254,87,255,255,254,90,254,87,255,255,254,82,254,87,254,87,254, +69,254,72,254,80,254,72,254,69,254,255,255,72,254,255,255,69,254,72,254,80,254,72,254,69,254,255,255,72,254,255,255,72,254,80,254,83,254,80,254,72,254,83,254,80,254,72,254,71,254,74,254,82,254,74,254,72,254,255,255,71,254,72,254, + +/* PATTERN 2 */ +37,254,37,254,37,254,37,254,37,255,255,254,37,255,255,254,37,254,37,254,37,254,37,254,37,255,255,254,37,255,255,254,40,254,40,254,40,254,40,254,40,255,255,254,40,255,255,254,39,254, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, +85,255,255,254,80,254,85,254,88,254,85,254,80,254,85,254,88,255,255,254,85,254,80,255,255,254,85,254,80,254,85,254,88,255,255,254,83,254,88,254,87,254,83,254,87,254,88,254,87,254, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, +69,254,72,254,80,254,72,254,69,254,255,255,72,254,255,255,69,254,72,254,80,254,72,254,69,254,255,255,72,254,255,255,72,254,80,254,83,254,80,254,72,254,83,254,80,254,72,254,71,254, +253,255,255,255,255,255,255,255,255,255,255,255,255,252, + +/*************************** tODELLUUS PART */ + +/* 4 == tyhjae */ + +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,250, + +/* 6==fmoottori1 */ +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48,255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255,67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66,255, +80,254,96,87,96,87,80,87,80,254,96,87,99,90,87,90,80,254,87,80,96,87,80,87,80,254,87,254,98,89,85,89,80,254,96,87,96,87,83,87,83,254,90,85,87,82,87,82,99,254,90,254,85,254,99,254,85,254,82,254,82,254,85,82, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +/* PATTERN 1 */ +/*254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,25 +255,255, +66,254,255,255,50,254,255,255,82,73,82,254,66,254,255,255,66,254,255,255,50,254,255,255,82,73,82,254,66,254,255,255,64,254,255,255,48,254,255,255,80,71,80,254,64,254,255,255,48,254,255,255,255,254,255,255,96,254,96,254,96,254,96,254, +50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,254,255,255,255,255,255,255,48,255,255,254,48,254,64,254, +*/ + +80,254,255,255,80,254,74,255,80,255,74,255,80,254,255,255,255,255,71,255,255,254,72,254,71,254,72,255,71,255,72,255,74,254,255,255,74,254,72,255,74,255,72,255,74,254,255,255,255,255,69,255,255,254,71,254,69,254,255,255,69,254,74,255, +64,254,255,255,48,254,255,255,80,71,80,254,64,254,255,255,64,254,255,255,48,254,255,255,80,71,80,254,64,254,255,255,58,254,255,255,42,254,255,255,74,69,74,254,58,254,255,255,58,254,255,255,42,254,255,255,74,69,74,254,58,254,255,255, +48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,254,64,254,48,254,64,254,42,255,255,254,58,254,42,254,42,255,255,254,58,254,42,254,42,255,255,254,58,254,42,254,42,254,58,254,42,254,58,254, + +82,254,255,255,82,254,80,255,82,255,80,255,82,254,255,255,255,255,73,255,255,254,74,254,73,255,74,255,73,255,74,255,80,254,255,255,80,254,74,255,80,255,74,255,80,254,255,255,255,255,71,255,255,254,73,254,87,254,87,254,87,254,87,254, +66,254,255,255,50,254,255,255,82,73,82,254,66,254,255,255,66,254,255,255,50,254,255,255,82,73,82,254,66,254,255,255,64,254,255,255,48,254,255,255,80,71,80,254,64,254,255,255,48,254,255,255,48,254,255,255,80,71,80,254,64,254,255,255, +50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,255,255,254,48,254,64,254, + +85,254,255,255,85,254,83,255,85,255,83,255,85,254,255,255,255,255,80,255,255,254,81,254,80,254,81,255,80,255,81,255,83,254,255,255,83,254,81,255,83,255,81,255,83,254,255,255,255,255,74,255,255,254,80,254,74,254,255,255,74,254,83,255, +69,254,255,255,53,254,255,255,85,80,85,254,69,254,255,255,69,254,255,255,53,254,255,255,85,80,85,254,69,254,255,255,67,254,255,255,51,254,255,255,83,74,83,254,67,254,255,255,67,254,255,255,51,254,255,255,83,74,83,254,67,254,255,255, +53,255,255,254,69,254,53,254,53,255,255,254,69,254,53,254,53,255,255,254,69,254,53,254,53,254,69,254,53,254,69,254,51,255,255,254,67,254,51,254,51,255,255,254,67,254,51,254,51,255,255,254,67,254,51,254,51,254,67,254,51,254,67,254, + +87,254,255,255,87,254,85,255,87,255,85,255,87,254,255,255,255,255,82,255,255,254,83,254,82,255,83,255,82,255,83,255,85,254,255,255,85,254,83,255,85,255,83,255,85,254,255,255,255,255,80,255,255,254,82,254,96,254,255,255,255,255,255,255, +71,254,255,255,55,254,255,255,87,82,87,254,71,254,255,255,71,254,255,255,55,254,255,255,87,82,87,254,71,254,255,255,69,254,255,255,53,254,255,255,85,80,85,254,69,254,255,255,53,254,255,255,53,254,255,255,85,254,255,255,255,255,255,255, +55,255,255,254,71,254,55,254,55,255,255,254,71,254,55,254,55,255,255,254,71,254,55,254,55,255,255,254,71,254,55,254,53,255,255,254,69,254,53,254,53,255,255,254,69,254,53,254,53,255,255,254,69,254,53,254,53,254,255,255,255,255,255,255, + +/* PATTERN 6 */ +86,254,255,255,81,254,255,255,73,254,255,255,81,254,255,255,86,254,81,255,73,255,81,255,86,254,255,255,89,254,86,255,84,254,255,255,75,254,255,255,59,254,255,255,75,254,255,255,84,254,75,255,65,255,72,255,81,255,72,255,68,255,97,255, +86,254,255,255,70,254,255,255,86,81,70,254,86,81,70,254,86,254,255,255,70,254,255,255,102,97,86,254,86,81,70,254,84,254,255,255,68,254,255,255,100,91,84,254,84,75,68,254,84,254,255,255,68,254,255,255,100,91,84,254,84,75,68,254, +54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254, + +/* PATTERN 0 */ +88,254,255,255,83,254,255,255,75,254,255,255,83,254,255,255,88,254,83,255,75,255,83,255,88,254,255,255,91,254,88,255,86,254,255,255,81,254,255,255,65,254,255,255,81,254,255,255,86,254,81,254,70,254,81,254,86,254,81,254,86,254,81,254, +72,254,255,255,56,254,255,255,88,83,72,254,72,254,255,255,72,254,255,255,56,254,255,255,88,83,72,254,72,254,255,255,70,254,255,255,54,254,255,255,86,81,70,254,70,254,255,255,86,254,70,254,86,254,70,254,86,81,70,254,86,81,70,254, +56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254, + +/* PATTERN 1 */ +86,254,255,255,81,254,255,255,73,254,255,255,81,254,255,255,86,254,81,255,73,255,81,255,86,254,255,255,89,254,86,255,84,254,255,255,75,254,255,255,59,254,255,255,75,254,255,255,84,254,75,255,65,255,72,255,81,255,72,255,68,255,97,255, +86,254,255,255,70,254,255,255,86,81,70,254,86,81,70,254,86,254,255,255,70,254,255,255,102,97,86,254,86,81,70,254,84,254,255,255,68,254,255,255,100,91,84,254,84,75,68,254,84,254,255,255,68,254,255,255,100,91,84,254,84,75,68,254, +54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254, + +/* PATTERN 2 */ +88,254,255,255,83,254,255,255,75,254,255,255,83,254,255,255,88,254,83,255,75,255,83,255,88,254,255,255,91,254,88,255,86,254,255,255,81,254,255,255,65,254,255,255,81,254,255,255,86,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +72,254,255,255,56,254,255,255,88,83,72,254,72,254,255,255,72,254,255,255,56,254,255,255,88,83,72,254,72,254,255,255,70,254,255,255,54,254,255,255,86,81,70,254,70,254,255,255,86,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + +/********************************************/ + +/* PATTERN 14 == 0 nostettuna 3:lla */ +35,254,35,254,35,254,35,254,35,255,255,254,35,255,255,254,35,254,35,254,35,254,35,254,35,255,255,254,35,255,255,254,38,254,38,254,38,254,38,254,38,255,255,254,38,255,255,254,37,254,37,254,37,254,37,254,38,255,255,254,53,254,37,254, +42,254,42,254,42,254,42,254,42,255,255,254,42,255,255,254,42,254,42,254,42,254,42,254,42,255,255,254,42,255,255,254,45,254,45,254,45,254,45,254,45,255,255,254,45,255,255,254,44,254,44,254,44,254,44,254,45,255,255,254,60,254,44,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +/*****************/ + +/* PATTERN 15 */ +53,255,69,255,53,255,69,255,53,255,69,255,56,255,72,255,53,255,69,255,53,255,69,255,53,255,69,255,55,255,71,255,53,255,69,255,53,255,69,255,56,255,72,255,64,255,80,255,56,255,72,255,56,255,72,255,58,255,74,255,55,255,71,255, +85,254,101,96,101,96,85,96,85,254,101,96,104,99,96,99,85,254,96,85,101,96,85,96,85,254,96,254,103,98,90,98,85,254,101,96,101,96,88,96,88,254,99,90,96,87,96,87,104,254,99,254,90,254,104,254,90,254,87,254,87,254,90,87, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +51,255,67,255,51,255,67,255,51,255,67,255,54,255,70,255,51,255,67,255,51,255,67,255,51,255,67,255,53,255,69,255,51,255,67,255,51,255,67,255,54,255,70,255,58,255,74,255,54,255,70,255,54,255,70,255,56,255,72,255,53,255,69,255, +83,254,255,255,255,255,255,255,255,255,255,255,86,254,255,255,83,254,255,255,255,255,255,255,255,255,255,255,85,254,85,254,83,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,86,254,255,255,255,255,255,255,88,254,88,254,85,254,85,254, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +51,255,67,255,51,255,67,255,51,255,67,255,54,255,70,255,51,255,67,255,51,255,67,255,51,255,67,255,53,255,69,255,51,255,67,255,51,255,67,255,54,255,70,255,58,255,74,255,54,255,70,255,54,255,70,255,88,254,88,254,88,254,88,254, +83,254,255,255,255,255,255,255,255,255,255,255,86,254,255,255,83,254,255,255,255,255,255,255,255,255,255,255,85,254,85,254,83,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,86,254,255,255,255,255,255,255,83,88,83,88,96,88,96,88, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48,255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255,67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66,255, +80,254,96,87,96,87,80,87,80,254,96,87,99,254,255,255,80,254,87,80,96,87,80,87,80,254,87,254,98,254,98,82,80,254,96,87,96,254,255,255,83,254,90,85,87,254,255,255,99,254,90,254,85,254,99,254,85,254,82,254,255,255,82,254, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255, + +53,255,69,255,53,255,69,255,53,255,69,255,56,255,72,255,53,255,69,255,53,255,69,255,53,255,69,255,55,255,71,255,53,255,69,255,53,255,69,255,56,255,72,255,64,255,80,255,56,255,72,255,56,255,72,255,58,255,74,255,55,255,71,255, +85,254,101,96,101,96,85,96,85,254,101,96,104,254,255,255,85,254,96,85,101,96,85,96,85,254,96,254,103,254,103,87,85,254,101,96,101,254,255,255,88,254,99,90,96,254,255,255,104,254,99,254,90,254,104,254,90,254,87,254,255,255,87,254, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255 + +}; diff -r 000000000000 -r acb5694e93d9 final_isi/fisitime.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/fisitime.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,224 @@ +#include "fisimusa.h" + +#ifdef MSDOS + #include +#endif + +#define NUMCH 3 + +char cord=0,cpat=0,crow=0,drmt=0xff,drms=0; + +char auditype; + +int plrbeep[2]; +int musatempo=5; + +#ifdef MSDOS + +/***************** h00KiNG nEW iNTERRuPT hANDLeRs **************/ + +#define setadlib adlib + +unsigned int taimeri; + +void interrupt int_8(); +void interrupt (*old_int8)(); + +kellovauhti(char spiidi) +{ + disable(); + outportb(0x43,0x36); + outportb(0x40,0x00); + outportb(0x40,spiidi); + enable(); +} + +timer_on() +{ taimeri=0; + + if(auditype){initsound(); + cpat=patord[0];} + disable(); + old_int8=getvect(0x08); + setvect(0x08,int_8); + enable(); + kellovauhti(64); +} + +timer_off() +{ + disable(); + setvect(0x08,old_int8); + enable(); + kellovauhti(0); + + if(auditype)initsound(); +} + +void interrupt int_8() +{ + taimeri++; + if (!(taimeri&3)) (*old_int8)(); else outport(0x20,0x20); + if(auditype)playtick(); +} + +/**********************************************************/ +/******************* pLAYVVERr RUTiNE ********************/ + +char instru[2][11]={ + 0xa1,0xa1,0xff,0xff,0x0f,0x0f,0x03,0x03,0x01,0x00,0x00, /* bass? */ + 0xa2,0xa2,0xff,0xff,0x0f,0x0f,0x03,0x03,0x01,0x00,0x00, /* ohrgan */ +}; + +adl_ldinstr(int kanava,int i) +{ + char*ins=instru[i]; + char osotte[11] = { + 0x20,0x23,0x60,0x63,0x80,0x83,0xe0,0xe3,0xc0,0x40,0x43 }; + char *tmp=ins; char l; + for(l=0;l<11;l++) adlib(kanava+osotte[l],*tmp++); +} + +initsound() +{ + int l; + + if(auditype==1) nosound(); + + if(auditype==2){ + for(l=0;l<244;l++) adlib(l,0); + adlib(0x01,0x20); + adl_ldinstr(0,1); + adl_ldinstr(1,1); + adl_ldinstr(2,1);} + +} +#endif + +int freku[12] = { + 0x157,0x16b,0x181,0x198,0x1b0,0x1ca, + 0x1e5,0x202,0x220,0x241,0x263,0x287 + }; +char plst=0; + +/********************** + **********************/ + +playtick() +{ + plst++; + + #ifdef MSDOS + + if(auditype==1){ + if(plst==musatempo/3){ + if (plrbeep[0]) sound(plrbeep[0]>>3); + else + if(plrbeep[0])sound(plrbeep[0]>>3);else nosound(); + } + if(plst==musatempo/2){ + if (plrbeep[1]) sound(plrbeep[1]>>3); + else + if(plrbeep[2])sound(plrbeep[2]>>3);else nosound(); + } + + } + + if (auditype==2){int l;for(l=0;l=12)mark+=4; + + #ifdef MSDOS + + /********* ADLiB ********/ + + if(auditype==2){ + + int hum=(freku[mark&15]) /* note */ + |(32*256)| /* key on */ + (((mark&(255-15))-32) *64); /* octave */ + + adlib(0xb0+l,hum>>8); + adlib(0xa0+l,hum&255); + adlib(0x40+l,12); + adlib(0x43+l,15); + } + + /******** iBM sPEAKER *****/ + + if(auditype==1){ + + plrbeep[l]=freku[mark&15]; + plrbeep[l]<<=((( (mark&(255-15)) >>4)&15)-2); + + /* + if (plrbeep[0]) sound(plrbeep[0]>>3); + else if (plrbeep[1]) sound(plrbeep[1]>>3); + else nosound();*/ + + } + + /*********************/ + + #else + gbsound(l,(mark&15)+((mark>>4)*12)); + #endif + + } } + + crow++; if (crow==64) { + crow=0;cord++; + cpat=patord[cord]; + if (cpat==99) { cord=0; cpat=patord[cord]; }} +} diff -r 000000000000 -r acb5694e93d9 final_isi/fisitime.o Binary file final_isi/fisitime.o has changed diff -r 000000000000 -r acb5694e93d9 final_isi/sini.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/sini.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,21 @@ +signed char sini[256]= { + +0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, +54, 57, 59, 62, 65, 67, 70, 73, 75, 78, 80, 82, 85, 87, 89, 91, 94, 96, +98, 100, 102, 103, 105, 107, 108, 110, 112, 113, 114, 116, 117, 118, +119, 120, 121, 122, 123, 123, 124, 125, 125, 126, 126, 126, 126, 126,126, +126, 126, 126, 126, 126, 126, 125, 125, 124, 123, 123, 122, 121, 120, +119, 118, 117, 116, 114, 113, 112, 110, 108, 107, 105, 103, 102, 100, +98, 96, 94, 91, 89, 87, 85, 82, 80, 78, 75, 73, 70, 67, 65, 62, 59, 57, +54, 51, 48, 45, 42, 39, 36, 33, 30, 27, 24, 21, 18, 15, 12, 9, 6, 3, 0, +-4, -7, -10, -13, -16, -19, -22, -25, -28, -31, -34, -37, -40, -43, -46, +-49, -52, -55, -58, -60, -63, -66, -68, -71, -74, -76, -79, -81, -83, +-86, -88, -90, -92, -95, -97, -99, -101, -103, -104, -106, -108, -109, +-111, -113, -114, -115, -117, -118, -119, -120, -121, -122, -123, -124, +-124, -125, -126, -126, -127, -127, -127, -127, -127, -127, -127, -127, +-127, -127, -126, -126, -125, -124, -124, -123, -122, -121, -120, -119, +-118, -117, -115, -114, -113, -111, -109, -108, -106, -104, -103, -101, +-99, -97, -95, -92, -90, -88, -86, -83, -81, -79, -76, -74, -71, -68, +-66, -63, -60, -58, -55, -52, -49, -46, -43, -40, -37, -34, -31, -28, +-25, -22, -19, -16, -13, -10, -7, -4 }; + diff -r 000000000000 -r acb5694e93d9 final_isi/sini16.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/sini16.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,29 @@ + +unsigned int sini16[256]={ +0, 804, 1607, 2410, 3211, 4011, 4807, 5601, 6392, 7179, 7961, 8739, +9511, 10278, 11038, 11792, 12539, 13278, 14009, 14732, 15446, 16150, +16845, 17530, 18204, 18867, 19519, 20159, 20787, 21402, 22004, 22594, +23169, 23731, 24278, 24811, 25329, 25831, 26318, 26789, 27244, 27683, +28105, 28510, 28897, 29268, 29621, 29955, 30272, 30571, 30851, 31113, +31356, 31580, 31785, 31970, 32137, 32284, 32412, 32520, 32609, 32678, +32727, 32757, 32767, 32757, 32727, 32678, 32609, 32520, 32412, 32284, +32137, 31970, 31785, 31580, 31356, 31113, 30851, 30571, 30272, 29955, +29621, 29268, 28897, 28510, 28105, 27683, 27244, 26789, 26318, 25831, +25329, 24811, 24278, 23731, 23169, 22594, 22004, 21402, 20787, 20159, +19519, 18867, 18204, 17530, 16845, 16150, 15446, 14732, 14009, 13278, +12539, 11792, 11038, 10278, 9511, 8739, 7961, 7179, 6392, 5601, 4807, +4011, 3211, 2410, 1607, 804, 0, -805, -1608, -2411, -3212 ,-4012, -4808, +-5602, -6393, -7180, -7962, -8740, -9512, -10279, -11039, -11793, +-12540, -13279, -14010, -14733, -15447, -16151, -16846, -17531, -18205, +-18868, -19520, -20160, -20788, -21403, -22005, -22595, -23170, -23732, +-24279, -24812, -25330, -25832, -26319, -26790, -27245, -27684, -28106, +-28511, -28898, -29269, -29622, -29956, -30273, -30572, -30852, -31114, +-31357, -31581, -31786, -31971, -32138, -32285, -32413, -32521, -32610, +-32679, -32728, -32758, -32767, -32758, -32728, -32679, -32610, -32521, +-32413, -32285, -32138, -31971, -31786, -31581, -31357, -31114, -30852, +-30572, -30273, -29956, -29622, -29269, -28898, -28511, -28106, -27684, +-27245, -26790, -26319, -25832, -25330, -24812, -24279, -23732, -23170, +-22595, -22005, -21403, -20788, -20160, -19520, -18868, -18205, -17531, +-16846, -16151, -15447, -14733, -14010, -13279, -12540, -11793, -11039, +-10279, -9512, -8740, -7962, -7180, -6393, -5602, -4808, -4012, -3212, +-2411, -1608, -805 }; diff -r 000000000000 -r acb5694e93d9 final_isi/tmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/tmp Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,8 @@ +fiscroll.c +fisi3d.c +fisidemo.c +fisieffu.c +fisifont.c +fisimain.c +fisitime.c +wrapper.c diff -r 000000000000 -r acb5694e93d9 final_isi/wrapper.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/wrapper.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,269 @@ +#include "wrapper.h" + +/** conio stuff **/ + +int clrscr() +{ +// fprintf(stderr,"\033[2J\033[H"); +} +int getch() +{ + return '.'; +} +int kbhit() +{ + return 1; +} + +/*****/ + +void loopflush() +{ + pwplib.loopflush(); +} + +void sound(int freq) /* beepsound */ +{ +} + +void gbsound(int ch,int freq) +{ + if(freq)pwplib.sound(ch,freq<<8,pwplib.setup[SETUP_VOLUME]); + else pwplib.sound(ch,0,0); +} + +/** video stuff **/ + +void retracecheck(){} +void setvideo() +{ + fprintf(stderr,"setvideo\n"); +} + +/** timing stuff **/ + +int get_timerval() +{ + return pwplib_timer(); +} +void timer_on(void(*player)()) +{ + pwplib_init(); /* test if <48 ==> 25ize */ + pwplib.videobuf.width=80; + pwplib.videobuf.height=50; + + pwplib.player=player; + /* etc */ +} +void timer_off() +{ + /* pwplib_exit(); */ +} + +/** fx stuff **/ + +/*************************************************/ + +void fillbuf(char*d,int w16,int lgt) /* iku */ +{ + short*dd=(short*)d; + for(;lgt;lgt--)*dd++=w16; +} +void dump28025() /* iku */ +{ + fprintf(stderr,"dump28025\n"); +} +void dump2buf(char*s0,char*s1,char*d,int lgt) /* iku */ +{ + char tmp[80*50*2];d=tmp;lgt=80*50;lgt<<=1; + tmp[0]=tmp[1]=tmp[2]=tmp[3]=0; + {int j=lgt; + for(;j;j--){d[0]=176;d[1]=*s0++|*s1++;d+=2;}} + + pwplib.videobuf.d=tmp; + pwplib.dump_ibm(); +} +void dumpbuf(char*s,char*d,int lgt) /* iku */ +{ + {char*tmp=pwplib.videobuf.d; + pwplib.videobuf.d=s; + pwplib.dump_rast(); + pwplib.videobuf.d=tmp; + } +/* + char tmp[80*50*2];d=tmp;lgt<<=1; + tmp[0]=tmp[1]=tmp[2]=tmp[3]=0; + {int j=lgt; + for(;j;j--){d[0]=176;d[1]=*s++;d+=2;}} + + pwplib.videobuf.d=tmp;pwplib.dump_ibm();*/ +} +void dump_attr(char*s) +{ + pwplib.videobuf.d=s;pwplib.dump_ibm(); +} +void txtmode(int c) +{ + clrscr(); + pwplib.videobuf.height=c?50:25; +} + +#define USE_RUUTU + +/** uncrunch **/ + +/* thedraw uncrunch */ + +#ifdef USE_RUUTU + extern char *ruutu; +#endif +void uncrunch(unsigned char*src,char*dst,int lgt) +{ + char attr=0x07,*nxtlin=dst+160; + #ifdef USE_RUUTU + int upd=((dst>=ruutu) && (dst0;lgt--){ + int c=*src++; + if(c>=32){dst[0]=c;dst[1]=attr;dst+=2;}else + if(c<16)attr=(attr&0xf0)|c;else + if(c<24)attr=(attr&0x8f)|((c-16)<<4);else + if(c==24){dst=nxtlin;nxtlin+=160;}else + if(c==25){int i=1+*src++; + for(;i;i--){dst[0]=32;dst[1]=attr;dst+=2;}lgt--;}else + if(c==26){int i=1+src[0],t=src[1];src+=2; + for(;i;i--){dst[0]=t;dst[1]=attr;dst+=2;}lgt-=2;} + else if(c==27)attr^=0x80; + } + #ifdef USE_RUUTU + if(upd)dump_attr(ruutu); + #endif +} + +/* + char hou[80*56];d=hou;lgt<<=1; + fprintf(stderr,"\033[1;1H"); + lgt-=(lgt>>3); + for(;lgt;lgt--)*d++=32+(*s++&63); + *d++=0; + fprintf(stderr,hou);*/ + +void fadebuf(char*b,char*tab,int lgt) /* iku */ +{ + for(lgt<<=1;lgt;lgt--){*b=tab[*b];b++;} +} +void drawsym(char*d,int*symt,char*bm,int off,int lgt) /* iku */ +{ + for(;lgt;lgt--)*d++=bm[(off+*symt++)&1023]; +} + +#define SENTINEL 32123 +void drawjulia(char*d,int*c2tab,int cmod) /* iku */ +{ +/* int i=80*50,*c2=c2tab; + for(;i;i--){ + int c=*c2++; + if(c==SENTINEL){d++;goto boh;} + c=c2tab[(c+cmod)&65535]; + if(c==SENTINEL){*d++|=0x01;goto boh;} + c=c2tab[(c+cmod)&8191]; + if(c==SENTINEL){*d++|=0x10;goto boh;} + c=c2tab[(c+cmod)&8191]; + if(c==SENTINEL){*d++|=0x11;goto boh;} + c=c2tab[(c+cmod)&8191]; + if(c==SENTINEL){*d++|=0x19;goto boh;} + *d++|=0x91; + boh: + }*/ +} +#undef SENTINEL + +void addzbmapL(char*d,char*s,int xcount,int xadd,int ycount, + int yadd,int fixcount) /* iku */ +{ + for(;ycount>0;ycount--){ + {int i=0,x=xcount;char*dd=d;char*ss=&s[32*(fixcount>>8)]; + for(;x;x--){*dd++|=ss[i>>8];i+=xadd;}} + d+=80; + fixcount+=yadd;} +} +void addzbmapR(char*d,char*s,int xcount,int xadd,int ycount, + int yadd,int fixcount) /* iku */ +{ + for(;ycount>0;ycount--){ + {int i=0,x=xcount;char*dd=d;char*ss=&s[32*(fixcount>>8)]; + for(;x;x--){*dd--|=ss[i>>8];i+=xadd;}} + d+=80; + fixcount+=yadd;} +} +void dump8025(){ + fprintf(stderr,"dump8025\n"); +} + +/* taimeri => gettimer(); */ + +/*int taimeri=0;*/ + +/***/ + +void textcolor(int c){} +void picmov(){} +void memfill(){} + +int mul32(int a,int b) +{ + return (a*b)>>16; +} + +int attr2dump(char*s0,char*s1,char*d,int lgt,int ander) /* fisi */ +{ + char tmp[80*50];d=tmp;lgt=80*50; + tmp[0]=tmp[1]=tmp[2]=tmp[3]=0; + {int j=lgt; + for(;j;j--)*d++=(*s0++&ander)|*s1++; + } + pwplib.videobuf.d=tmp; + pwplib.dump_rast(); +} + +int attrdump(char*s,char*d,int howmany) /* fisi */ +{ + dumpbuf(s,d,howmany>>1); +} + +int dump16() /* fisi */ +{ + fprintf(stderr,"dump16\n"); /* fisi */ +} +int dump216() +{ + fprintf(stderr,"dump216\n"); /* fisi */ +} + +int dumphybrid(uchar*a,uchar*b,uchar*d) /* fisi */ +{ + char tmp[80*50*2];int y=25;d=tmp; + + for(;y;y--){int x=80; + for(;x;x--) + { + if(*a!=253){d[0]=*a;d[1]=a[1];}else + {int z=(b[0]&0xf0)|(b[80]>>4); + d[0]=z?220:32;d[1]=z;} + a+=2;d+=2;b++; + }b+=80;} + + pwplib.videobuf.d=tmp;pwplib.dump_ibm(); +} + +int gotoxy() /* fisi */ +{} +int polytxloop(sint h,char*di,uint x1,sint dx0,sint dx1,char*txr, + sint dv,sint du) /* fisi */ +{ + int x0=0,u=0,tpv=0; + for(;h>0;h--){ + {char*d=di+(x0>>8);int c=(x1>>8)&127,tp=(tpv<<4)&0xf000; + if(c>0)for(;c;c--){*d++=txr[(tp>>8)&0xff];tp+=du;}} + x0+=dx0;x1+=dx1;di+=80;tpv+=dv;/*dv*/} +} diff -r 000000000000 -r acb5694e93d9 final_isi/wrapper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/final_isi/wrapper.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,24 @@ +#include +#include +#include +#include + +#include "../pwplib/pwplib.h" + +#define sqrt sqrt__ +#define cprintf printf + +#define DEBUG(a) fprintf(stderr,a "\n") + +#define taimeri get_timerval() + +/*extern inline int dummy(){}*/ + +/* taimeri => gettimer(); */ + +typedef unsigned char uchar; +typedef signed int sint; +#define uint unsigned int +typedef signed char schar; + +/**/ diff -r 000000000000 -r acb5694e93d9 flier/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flier/Makefile Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,47 @@ +ASCFLIERS=pwpflier0-small.txt pwpflier0-big.txt +PSFLIERS=pwpflier0.ps pwpflier0b.ps pwpflier0c.ps + +all: ascfliers psfliers + +ascfliers: $(ASCFLIERS) + +psfliers: $(PSFLIERS) + +pwpflier: pwpflier.c + cc pwpflier.c -o pwpflier + +pwpflier0-small.txt: pwpflier + ./pwpflier 3 3 > pwpflier0-small.txt + +pwpflier0-big.txt: pwpflier + ./pwpflier 7 5 > pwpflier0-big.txt + +pwpflier0b-big.txt: pwpflier + ./pwpflier 4 3 > pwpflier0b-big.txt + +pwpflier0c-big.txt: pwpflier + ./pwpflier 7 5 plasma > pwpflier0c-big.txt + +pwpflier0-big2.txt: pwpflier0-big.txt + cat pwpflier0-big.txt pwpflier0-big.txt > pwpflier0-big2.txt + +pwpflier0b-big2.txt: pwpflier0b-big.txt + cat pwpflier0b-big.txt pwpflier0b-big.txt > pwpflier0b-big2.txt + +pwpflier0c-big2.txt: pwpflier0c-big.txt + cat pwpflier0c-big.txt pwpflier0c-big.txt > pwpflier0c-big2.txt + +pwpflier0.ps: pwpflier pwpflier0-big2.txt + a2ps --prologue=bold --no-header --chars-per-line=230 \ + --copies=4 pwpflier0-big2.txt > pwpflier0.ps + +pwpflier0b.ps: pwpflier pwpflier0b-big2.txt + a2ps --prologue=bold --no-header --chars-per-line=140 \ + pwpflier0b-big2.txt > pwpflier0b.ps + +pwpflier0c.ps: pwpflier pwpflier0c-big2.txt + a2ps --prologue=bold --no-header --chars-per-line=230 \ + --copies=4 pwpflier0c-big2.txt > pwpflier0c.ps + +clean: + rm -f *~ pwpflier $(ASCFLIERS) $(PSFLIERS) diff -r 000000000000 -r acb5694e93d9 flier/pwpflier.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flier/pwpflier.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,320 @@ +#include +#include +#include + +char protomap[256][256]; + +int rasterizer[8]={0,32,16,48,8,40,24,56}; + +#define LIM(a) ((a)<0?0:((a)>255?255:(a))) + +void recursive_plasma(int x0,int y0,int x1,int y1,int lev) +{ + if(x1>x0 && y1>y0) + { + int a=protomap[x0&255][y0&255], + b=protomap[x1&255][y0&255], + c=protomap[x0&255][y1&255], + d=protomap[x1&255][y1&255], + + xm=(x0+x1)>>1, + ym=(y0+y1)>>1; + + protomap[xm][y0]=(a+b)>>1; + protomap[xm][y1]=(c+d)>>1; + protomap[x0][ym]=(a+c)>>1; + protomap[x1][ym]=(b+d)>>1; + + // 4:single detail, 8:g00d, 32:mess with great contrast + { int k=rand()%((abs(x0-x1)<>2); + } + + if(x1>x0+1) + { + recursive_plasma(x0,y0,xm,ym,lev); + recursive_plasma(xm,y0,x1,ym,lev); + recursive_plasma(x0,ym,xm,y1,lev); + recursive_plasma(xm,ym,x1,y1,lev); + } + } +} + + +void drawflier(char*pic0,char*bg0,int xzoom,int yzoom) +{ + int iy=0,ix; + + char*pic=pic0, + *bg=bg0; + + while(*pic!='\0') + { + char*line=pic; + int y=yzoom; + + for(;y;y--) + { + pic=line; + while(*pic!='\n') + { + int x=xzoom; + for(;x;x--) + { + if(*pic!=' ') + { + putchar(*bg); + bg++; + if(*bg=='\0')bg=bg0; + } + else + { + int k=protomap[iy&255][ix&255]+rasterizer[(iy^(ix<<1))&7]; + putchar(" ..:;"[(k>>6)%5]); + } + ix++; + } + + pic++; + if(pic=='\0')pic=pic0; + } + iy++; + ix=0; + putchar('\n'); + } + pic++; + } +} + +/********************************************************************/ + +char*pwpflier0= + + " \n" + " \n" + " \n" + " ** ******** \n" + " ******** ** \n" + " *** \n" + " *** \n" + " ************* \n" + " ******************* \n" + " ********** \n" + " xxxxxx \n" + " ***** \n" + " ***** x \n" + " ******** \n" + " ************ \n" + " ************** \n" + " **************** \n" + " ***** \n" + " ******* \n" + " *********** xx \n" + " *************** \n" + " ************ \n" + " ********** \n" + " ****** \n" + " ****** \n" + " ****** \n" + " \n" + " ******** ** ** ********\n" + " ******** ** ** ********\n" + " ** ** ** ** ** **\n" + " ** ** ** ** ** **\n" + " ******** ** ** ** ********\n" + " ******** ** ** ** ********\n" + " ** ** ** ** ** \n" + " ** ** ** ** ** \n" + " ** ********** ** \n" + " ** ********** ** \n" + " \n"; + +/* + * From Jeesuksen Opetuslapset ry - freely distributable text + * + * http://personal.inet.fi/yhdistys/jeesuksenopetuslapsetry./ + * + */ + +char*jolry_bg= + "Ottaisin päälleni vaikka minkälaisia ruttoja, jos saisin Jumalalta " + "VOIMALLISTEN TEKOJEN ARMOLAHJAN! HENKIEN ULOSAJAMISEN ARMOLAHJAN! " + "VAIKKA PUOLEKSI VUODEKSI! ILMAN NIITÄ EN VOI KUN ITKEÄ JA VALVOA " + "ÖITÄNI! KYLLÄ NE MIELESSÄ ON NUO VUODET JA NE YÖT KUN TUOLLA KÄVELIN " + "JA NÄIN KERTOMAANI! JA NYT SAAN KUULLA, ETTÄ TÄMÄ TOUHU KASVAA!!! JA " + "JUURI TÄHÄN AIKAAN!!!! SAATANA on vuositolkulla tietänyt " + "Hengellisistä asoista enemmän kuin uskovat! " + + "1990 luvun alussa JUMALALTA tuli profetia: \"Nyt, MINÄ JUMALA, ALAN " + "KURITTAMAAN SUOMEN KANSAA TOSI MIELESSÄ, SIITÄ SYYSTÄ, ETTÄ SUOMEN " + "KANSASTA EI LÖYDY HÄNELLE KELPAAVASSA USKOSSA OLEVIA IHMISIÄ, " + "HÄNELLE RIITTÄVÄÄ MÄÄRÄÄ! " + + "Kuinka paljon sinun perheessäsi on tuhottu äänitteitä, joilla on ns. " + "Hevy metalli rokkia? ns. Gospel musiikkia? Joita varhaisnuoret " + "kuuntelevat, kuin ei mitään pahaa olisi! " + + "SIINÄ TÄLLÄ MENETELMÄLLÄ MENEVÄT SITTEN 30 luvun Raamattu ja " + "Herramme JEESUS MUKANA! VALITAN! NÄIN VAKAVISTA ASIOISTA ON KYSE! " + "MINKÄS MINÄ HEILLE VOIN?! ITKEÄ JA KOITTAA KUINKA KOVIA LYÖNTEJÄ " + "TÄMÄ NÄPPÄIMISTÖ KESTÄÄ! JA SYÖDÄ PSYKOSOMAATTISIIN SAIRAUKSIINI " + "PURKKI KAUPALLA PILLEREITÄ! JOITA LÄÄKÄRINI KIELSI SYÖMÄSTÄ! Kun ei " + "ole varaa niihin lääkkeisiin, joita tarvitsen! " + + "HÄVETKÄÄ! JOS OSAATTE! RAAMATTU KERTOO, ETTÄ ISRAELIN KANSA " + "EVANKELIOIDAAN AIVAN MERKILLISELLÄ TAVALLA! MITEN SAMASTA ASIASTA " + "VOI OLLA KAKSI ERI VERSIOTA! PAINUKAA LUOLIIN JA TUKKIKAA SUUNNE! " + "SANON MINÄ! JOS EI TEILLÄ MUUTA PUHUTTAVAA OLE! ON RAAMATUN " + "LUKUNNEKIN OLLUT AIVAN TURHAA! KUN ETTE YMMÄRRÄ LUKEMAANNE! VOI " + "PYHÄ YKSINKERTAISUUS! Pystyisin kaatamaan joka ainoan väitteenne! " + "TE TULETTE RAAMATULLA! JA AIVAN SAMALLA KIRJALLA MINÄ KAADAN " + "JOKAISEN VALHEELLISEN VÄITTEENNE! MUTTA EN JAKSA! MUTTA VAROITAN " + "KYLLÄ NÄISTÄ KIRJANOPPINEISTA! ÄLKÄÄ KUUNNELKO HEITÄ! KUUNNELKEE " + "JEESUSTA! HÄN OPETTAA TEILLE RAAMATUN PERUSTOTUUDET HYVINKIN " + "NOPEASTI! EIKÄ NYT KYLLÄ PITKIIN KURSSEIHIN AIKAA OLEKKAAN! VAINON " + "AJAT OVAT LÄHELLÄ! JA TÄMÄ KANSA EI TIEDÄ MITÄÄN! ILMIANTAJIA ON " + "TUHATMÄÄRIN ENEMMÄN;KUIN NIITÄ AITOJA JEESUKSEN SEURAAJIA JOITA " + "TÄSSÄKIN MAASSA ALETAAN VAINOTA! NÄIN IKÄVÄSTI ON NYT ASIAT! JA " + "VIELÄ YRITÄTTE SAATANAN JOUKKOJEN KEHOITUKSESTA TULEMAAN ESIIN! SE " + "ON MIINA JOHON ME EMME NYT TULE! ANTEEKSI VAAN! TAIDAMME JOUTUA " + "POISTUMAAN AIKAISEMMIN, KUIN OLETINKAAN! VALMIINA KYLLÄ OLLAAN! EI " + "SIINÄ MITÄÄN! HUKASSA ON JO PALJON SUOMEN AITOJA USKOVAISIA! " + "POISTUMME HETI KUN SILTÄ NÄYTTÄÄ! JEESUS ANTAA MERKIN! EMME TARVITSE " + "KUIN TIEDON YÖLLÄ! SEURAAVANA PÄIVÄNÄ OLEMME JO KATEISSA! NIIN " + "YKSINKERTAISTA! " + + "YLEINEN VÄITTÄMÄ; JOKA TAANNOIN VIIMEKSI MINULLEKKIN TAAS POSTIN " + "KAUTTA HEITETTIIN:\" AITO PROFEETTA EI PUHU MILLOINKAAN " + "VALHEPROFETIOITA!\" AIVAN VARMASTI JOUTUU PUHUMAAN! ILMESTYKSIÄ " + "NÄKEVÄ; JOUTUU AIVAN VARMASTI KATSELEMAAN SAATANAN LUOMIA " + "ILMESTYKSIÄ!!!! SAARNAAJAT JA OPETTAJAT JOUTUVAT AIVAN VARMASTI " + "NÄIHIN MIINOIHIN! JOUDUMME YLIHENGELLISYYTEEN! JOUDUMME LAN ALLE! " + "IHAN VARMASTI JA AIVAN KÄYTÄNNÖSSÄ! TÄMÄ TAPAHTUU KOULUTTUKSEN " + "AIKANA. KAIKKI NÄMÄ! JA SENKIN JÄLKEEN SAATTAA LIPSUA! " + + "Nyt VELI TEMPAISIKIN SUOMEKSI KOMENNON: JEESUKSEN KRISTUKSEN " + "NASARETTILAISEN NIMESSÄ! ANNETTIIN PIMEYDEN HENKILLE LÄHTÖKÄSKY! " + "Mitäs nyt tapahtui? " + + "AMERIKASTAKIN KUULEMMA AINAKIN YKSI BÄNDI TULEE! Sinne sitten vaan " + "kuuntelemaan tuota SAATANAN LUOMAA MUSIIKKIA! Englannin sanakirjan " + "mukaan gospel tarkoittaa suomeksi: evankeliumi! ETTÄ SIIHEN MALLIIN " + "MEILLÄ PÄIN! Täytyy teille kertoa ihan tosiasia! JA JÄLLEEN " + "VALITETTAVASTI HYVIN MONIEN PETTYMYKSEKSI! SANAT OSIN RAAMATUSTA! " + "SÄVELLYS SAATANAN! TÄHÄN EI OLE ALUSTA ALKAENKAAN YHTYNYT JUMALA! EI " + "PYHÄ HENKI! EIKÄ TULE MILLOINKAAN YHTYMÄÄN MIHINKÄÄN! MISSÄ SAATANA " + "TAI HÄNEN JOUKKONSA OVAT MUKANA! NIIISSÄ LIIKKUU PIMEYDEN HENGET JA " + "TUNTEET! PALJONHAN NIILLÄKIN AIKAAN SAADAAN! Pelottavin aikaan " + "saannos tuollakin on JUMALAN VIHA!!! Maatamme kohtaan! SINNE NYT " + "VANHEMMAT: KAKAROITANNE PÄÄSTÄTTE! SUORASTAAN TYRKYTÄTTE! JA " + "KANNATTE USKOVAISEN NIMEÄ! Jättäkää tuo nimi pois! Ihan totta! " + "Katsokaas, kun JUMALALLA JA SAATANALLA EI OLE MITÄÄN TEKEMISTÄ " + "TOISTENSA KANSSA! EI HIUSKARVAN VERTAA! EI OLE MILLOINKAAN OLLUT! " + "SEN JÄLKEEN KUN SAATANA JA LANGENNEET ENKELIT TAIVAASTA VISKATTIIN! " + "EIKÄ TULE OLEMAAN! SAATANA ON KAIKEN MUSIIKIN JA KAIKKIEN SOITTIMIEN " + "ASIANTUNTIJA! SITÄ HÄN OLI JO TAIVAASSA! ENNEN KUIN RYHTYI KAPINAAN " + "JUMALAN KANSSA! Näin Raamattu meille kertoo! Valtavalle määrälle " + "teistä, tuo asia on tuttu! Mutta se nyt ikäänkuin ei kuuluisi " + "teille! ARVATKAAPA: KUULUUKO??? " + + "Erotkaa, rakkaat ystävät, noista VOUHOTTAJISTA, JOTKA EIVÄT MITÄÄN " + "TIEDÄ!!! Kasetilla on sanoittus suurista ihmeistä ja Raamatusta! " + "SÄVELLYS ON SAATANAN! LAULU ESITYS TÄYSIN TEKNINEN SUORITUS! JA " + "KAIKEN LISÄKSI SURKEA SELLAINEN! SAMAT ARVOSANAT KIRJASTA! SAATANAN " + "JOUKKOJEN KÄTYRI! Kuuluisuudestaan huolimatta; RIKU RINNE! AINAKIN " + "NYT! Jos muutosta tapahtuu? VIE SE TUOLTA PAIKALTA, MISSÄ HÄN NYT " + "ON: MELKO PITKÄN AIKAA! EN TUOMITSE! MUTTA PALJASTAN! JA VAROITAN! " + + "ELLEMME PÄÄSE ALKUSEURAKUNNAN KALTAISEEN JUMALAN VOIMAN VAIKUTUKSEN " + "ALLE? ON TULOSSA ILMESTYSKIRJAN MUKAAN SELLAISTA TAVARAA MYÖS " + "SUOMEEN! ETTÄ ILMAN TÄTÄ VOIMAA VOIMMEKIN SITTEN SANOA AIVAN " + "VARMASTI TOISILLEMME HYVÄSTI JA HYVÄÄ YÖTÄ! OHJEET ANTAA JEESUS " + "ALKUVALMISTELUT VOITTE TEHDÄ ALKUSEURAKUNNAN TAPAAN! KERRAN MEIDÄT " + "JOKAINEN RIISUTAAN! ELLET NÄIHIN USKO? Älä vaan sitten käytä " + "itsestäsi nimitystä uskovainen tai kristitty! VAAN JOS VÄITÄT ettei " + "nämä kuulu sinulle! Eikä meille tänä aikana?! SINÄ OLET TÄYSI " + "PELLE! " + + "JA NÄMÄKÄÄN EIVÄT VIELÄ OLE TAKUULIPPU TAIVAASEEN! MUTTA, KUN " + "KUULIAISESTI HERRAA TÄMÄN JÄLKEEN SEURAILEE. Voi joku saada " + "kerrottua asian lapsilleen sukulaisilleen jne, NIMITTÄIN JOS NÄMÄ " + "RUKOUKSET TEET AIVAN VILPITTÖMÄSTI ! Tarkoitan tuollaista tietoista " + "vilppiä. KAIKKI ME NYT MUUTOIN OLLAAN KAIKKEA PAHUUTTA TÄYNNÄ " + "TIEDÄTKÖ? SIELTÄ....TAIVAASTA KAJAHTAA MAHTAVA VOIMA ! " + + "Ja raha on tuossa osavaltiossa ollut pois käytössä tuon kokeen ajan. " + "TÄMÄ ON ILMESTYSKIRJASSA KERROTTU PEDON MERKKI! JOLLA TUOTA MERKKIÄ " + "EI OLE; HÄNELTÄ EI OSTETA MITÄÄN! EIKÄ MYYDÄ MITÄÄN! SEHÄN ON " + "SELVIÖ! KUN RAHA POISTETAAN KÄYTÖSTÄ. ON MAHDOTON ostaa tai myydä " + "ilman tuota pedon merkkiä! Pyrin selittämään tämän hyvin " + "kansanomaisesti. Ja kun tuo aika tulee. Ei paljon kertomastani voi " + "tuo menetelmä poiketa! Ja tämä on sitten sellainen MERKKI, jota " + "YKSIKÄÄN USKOVAINEN EI SAA MISSÄÄN OLOISSA OTTAA! NIMITTÄIN, kun " + "Antikristus nousee ja vaaditaan tuo pedon merkki on se kovimpia " + "koettelemuksia uskovaisille! Kansat kumartavat tuota " + "petoa. Tottelevat häntä. Siis SAATANAN JUTTU! " + + "Ellet tietoisesti palvele ja seuraa JEESUSTA, silloin tietämättäsi " + "palvelet ja seuraat SAATANAA! Hän pystyy tämän asian sinulta niin " + "hämäämään, ettet tiedä mitään! Jeesuksen omana olo ei ole salainen " + "asia! " + + "Kun yksikin taloudelliseti hyvin voiva henkilö tekee Jumalan mielen " + "mukaisen parannuksen. Napsahtaa omaisuudet automaattiseti Jumalan " + "Valtakunnan työhön! EIKÄ VAIN SINNE PÄIN! NIINKUIN NYT ON " + "KAIKENAIKAA NÄHTÄVISSÄ! NÄMÄ SAATANAN VALTAAMAT VÄLINEET EIVÄT KOVIN " + "KAUAA OLE USKOVAISTEN KÄDEN ULOTTUVILLA! JA SUOMESSA AIDOT JEESUKSEN " + "SEURAAJAT, JUMALAN PALVELIJAT VOIVAT TEHDÄ NÄIDEN LAITTEIDEN AVULLA " + "VALTAVIA JUTTUJA, JOITA JUMALA SIUNAA KYLLÄ SUOMESSA ON OLTAVA " + "KETJUT KUNNOSSA: MITEN JAKO ETEENPÄIN TAPAHTUU! Vaikka Jumala " + "Henkensä kautta on tehnyt yhtä sun toista Suomessa ilman ihmisiä! " + "Raamatun mukaan IHMISIÄ KÄYTETÄÄN JUMALAN VALTAKUNNAN TYÖSSÄ HAMAAN " + "JEESUKSEN TULEMUKSEEN ASTI!!! " + + "JOS TOIMITTE: LISÄTIETOA TULEE JEESUKSELTA NOPEAAN TAHTIIN! KAIKKI " + "MUU ON TÄYSIN TURHAA! Puhukoon Istala ja kumppanit mitä tykkää! " + "Saatanan palveluksessa koko remmi ja TIUKASTI! Ja lisää tulee! " + "ISTALA KAATUU UUSIEN TUULIEN TULLESSA! Amerikassa jo valmiina! " + "Levinnyt jo EUROOPPAAN! ENNUSTAN NÄILLE NYKYISILLE SAATANAN " + "KÄTYREILLE nopeaa uran päättymistä! " + + "OLISIKOHAN SYYTÄ VIIPYMATTÄ MENNÄ RUKOILLEN NÖYRASTI JEESUKSEN " + "OPETUKSEN ALLE! PARANNUKSEN TEON JÄLKEEN! JA SAMAN TIEN ANTAA " + "ITSENSÄ JUMALALLE OTOLLISEKSI UHRIKSI! Ehtii oppia PYHÄN HENGEN ja " + "saatanallisten henkien ERON! Ainakin näin räikeissä muodoissa! " + "Varoitan edelleen! Älkää tutkiko pimeyden henkiä????! "; + +/********************************************************************/ + +int main(int argc,char**argv) +{ + srand(time(NULL)); + + if(argc<3) + { + fprintf(stderr,"usage: %s [plasma]\n",argv[0]); + } + else + { + if(argc==3) + { + int i,j; + for(i=0;i<256;i++) + for(j=0;j<256;j++) + protomap[i][j]=0; + } + else + { + protomap[0][0]=rand()&255; + protomap[0][255]=rand()&255; + protomap[255][0]=rand()&255; + protomap[255][255]=rand()&255; + recursive_plasma(0,0,255,255,3); + } + + drawflier(pwpflier0,jolry_bg,atoi(argv[1]),atoi(argv[2])); + } + return 0; +} + diff -r 000000000000 -r acb5694e93d9 font/vizn7.fnt Binary file font/vizn7.fnt has changed diff -r 000000000000 -r acb5694e93d9 font/vizn7.fnt.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/font/vizn7.fnt.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,2085 @@ +#!/usr/bin/perl +# +# This is the 8x7 font I've been using on the Linux console. +# +# The charset is a hardcoded compromise between IBM/VGA codepage 001 +# and ISO Latin 1. It is designed to make it possible to view +# MS-DOS text, Latin-1 text and ANSI art relatively easily without +# conversion tables. +# +# I made this because all the different kernel conversion tables looked +# too complicated and only seemed to mess things up. I also wanted to use +# my old MS-DOS font instead of the ugly ROM-based one. +# +# The shapes of the characters are made simple and easily distinguishable +# to maximize the textmode resolution. +# +# Most IBM characters look different (thicker etc) than their Latin +# counterparts to prevent blindness in the charset matter. +# +# Some drawbacks: +# - U" (U Umlaut) is viewed as an IBM bottomhalf graphic piece. +# - The IBM graphic horizontal line is viewed as A" (A Umlaut) +# - Because of the cell height of 7, most accents on the letters +# don't look very pretty. +# +# There IS a way of doing the charset thing more properly. I'm just +# afraid it needs kernel hacking. +# +# Run this file with a Perl interpreter to generate the raw binary data +# for the 'setfont' utility. +# +# Made by viznut (vheikkil@hytti.uku.fi). No copyrights (public domain) + +sub ou { foreach(split("\n",$_[0])) { unless (/\-/) # Generated by +{ tr/\.\*/01/; print pack("B8",$_); }}} &ou(< + +#include "pwplib.h" + +#define DEMOBANNER "PWPLIB!" + +extern int detectvideo(); + +extern char auditype; + +extern char setup_rtc; +extern char setup_force25; +extern char setup_nohibit; +extern char setup_english; + +/*extern void setmono();*/ + +char *setmenu[6][4]= + {"ega/vga", "cga", "mda/hgc", "", + "80x50", "80x25", "","", + "on", "off", "","", + "on", "off", "","", + "none", "ibm pc", "adlib/sb", "g.u.z.", + "scene", "english", "","" +}; + +char numsels[6]={3,2,2,2,4,2}; +char menusel[6]={0,0,0,0,1,0}; + +vuwmenu(int x,int y,int c,int joo) +{ + textcolor(c); + gotoxy(25+12*x,10+y*2);cprintf(setmenu[y][x]); + if ((menusel[y]==x)&&joo) {textcolor(15);cprintf("!!");}else cprintf(" "); +} + +void zetmenu(char y,char x) +{ + vuwmenu(menusel[y],y,12,0); + menusel[y]=x; + vuwmenu(x,y,12,1); +} + +int pwplib_init(int argc,char**argv) +{ + signed int x,y,ch=0,cntdwn=40; + + char det=detectvideo(); + + textbackground(0);textcolor(15); + clrscr(); + + switch(det){ + case(0):menusel[0]= menusel[1]= menusel[2]= menusel[3]=1; + break; + case(1):menusel[1]=2; menusel[2]=1; break;} + + if (getenv("ULTRASND")) menusel[4]=3; + + if (getenv("BLASTER")) menusel[4]=2; + + +gotoxy(1,2); +cprintf(" ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ\n\r" + " ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ\n\r" + " ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ\n\r" + " ÛÛÛÛ ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ ÛÛÛÛ\n\r"); + + gotoxy(5,8); + cprintf( DEMOBANNER "\n"); + + textcolor(15); + gotoxy(1,10); cprintf("video output"); + gotoxy(1,12);cprintf("resolution"); + gotoxy(1,14);cprintf("bg highbit (ega+)"); + gotoxy(1,16);cprintf("vertical retrace check"); + gotoxy(1,18);cprintf("audio output"); + gotoxy(1,20);cprintf("language"); + + for(y=0;y<6;y++)for(x=0;x<4;x++) vuwmenu(x,y,12,1); + y=5; + + gotoxy(7,23); + textcolor(15); + while(cntdwn&&(!kbhit())){ + int tups=peek(0,1132); + while(tups==peek(0,1132)){} + gotoxy(25,23);textcolor(15); + cprintf("you now have %i/18.22 seconds for setup ",cntdwn--);gotoxy(35,23); + } + if(!cntdwn)ch=13; + + while((ch!=13)&&(ch!=27)){ + x=menusel[y]; + vuwmenu(x,y,14+128,1); + ch=getch();if(!ch)ch=getch(); + vuwmenu(x,y,12,0); + switch(ch){ + case('4'):case('K'):x--;if(x<0) x=0; menusel[y]=x; break; + case('6'):case('M'):x++;if(x>3) x=3; + if(x>=numsels[y]){vuwmenu(x,y,12,1);x--;} + menusel[y]=x; + if(y==0){ + if(x==2){zetmenu(1,1);zetmenu(2,1);zetmenu(3,1);} + if(x==1){zetmenu(1,1);zetmenu(2,1);} + } + break; + case('8'):case('H'):vuwmenu(x,y,12,1);y--;if(y<0) y=0;x=menusel[y];break; + case('2'):case('P'):vuwmenu(x,y,12,1);y++;if(y>5) y=5;x=menusel[y];break;} + + + } + auditype=menusel[4]; + setup_mono=menusel[0]; + setup_rtc=!menusel[3]; + setup_force25=menusel[1]; + setup_nohibit=menusel[2]; + setup_english=menusel[5]; + + if (auditype==3){ + clrscr();textcolor(15);auditype=2; + cprintf("ARE YOU SURE YOU HAVE SBOS INSTALLED? [Y/n]"); + ch=getch();if((ch|32)=='n'){ch=27; + cprintf("\r\n\nKANNATTAISI OPPIA HYVŽKSYMŽŽN ELŽMŽN REALITEETIT\r\n\n");}else ch=13; + } + return ch; +} diff -r 000000000000 -r acb5694e93d9 msdos/pwplib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/msdos/pwplib.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,58 @@ +#include +#include +#include + +#define PWPLIB_VERSION "PC-1.00" + +#ifndef PWPLIBINT + #define global extern + extern char pwplib_buf[]; +#else + #define global + char pwplib_buf[80*50]; +#endif + +extern int pwplib_init(int argc,char**argv); /* menu.c */ +#define pwplib_timer() timectr /* timer.c */ +extern void pwplib_shutdown(); /* timer.c */ +extern void pwplib_startup(); /* timer.c */ + +#define pwplib_bufw 80 +#define pwplib_bufh 50 + +/* obsolete */ +#define pwplib_prep_rast() +#define pwplib_dump_rast() +#define pwplib_prep_attr() +#define pwplib_dump_attr() +#define pwplib_prep_layered() +#define pwplib_dump_layered() + +extern void pwplib_loopflush(); /* video.c */ + +#define pwplib_setplayer(p) pwplib_player=p + +extern int pwplib_sound(int c,int n,int v,int r); /* timer.c */ +#define pwplib_sound_off(c) pwplib_sound(c,0,0,0) +#define pwplib_sound_n(c,n) p pwplib_sound(c,n,128,128) +#define pwplib_sound_nv(c,n,v) pwplib_sound(c,n,v,128) +#define pwplib_sound_nvr(c,n,v,r) pwplib_sound(c,n,v,r) + +#define pwplib_locale (setup_english?"en":"fi") + +global void(*pwplib_player)(); + +global char auditype; /* timer.c */ +global unsigned int timectr; + +global char setup_force25; +global char setup_rtc; +global char setup_nohibit; +global char setup_english; +global char setup_mono; + +#define u8 unsigned char +#define s8 signed char +#define u16 unsigned int +#define s16 signed int + diff -r 000000000000 -r acb5694e93d9 msdos/timer.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/msdos/timer.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,182 @@ +#include + +#define PWPLIBINT + +#include "pwplib.h" + +/****************** + * + * timer & init + */ + +void interrupt int_8(); +void interrupt (*old_int8)(); + +void clockspeed(char spiidi) +{ + disable(); + outportb(0x43,0x36); + outportb(0x40,0x00); + outportb(0x40,spiidi); + enable(); +} + +void pwplib_startup() +{ + timectr=0; + + initsound(); + + initvideo(); + + disable(); + old_int8=getvect(0x08); + setvect(0x08,int_8); + enable(); + clockspeed(64); +} + +void pwplib_shutdown() +{ + disable(); + setvect(0x08,old_int8); + enable(); + clockspeed(0); + + initsound(); + + textcolor(15); + clrscr(); +} + +void interrupt int_8() +{ + timectr++; + if (!(timectr&3)) (*old_int8)(); else outport(0x20,0x20); + + if(auditype)play8tick(); + /* ... should also call player */ +} + +/****************** + * + * sound-related + */ + +unsigned char chnote[3]; + +unsigned int subtick; + +const int notefreqs[12] = +{ + 0x157,0x16b,0x181,0x198,0x1b0,0x1ca, + 0x1e5,0x202,0x220,0x241,0x263,0x287 +}; + +int pwplib_sound(int c,int n,int v,int r) +{ + subtick=0; + chnote[c]=n; +} + +int play8tick() +{ + if(auditype==1) + { + signed int toplay=-1; + + if(subtick==0)toplay=chnote[0]; + if(subtick==2)toplay=chnote[1]?chnote[1]:chnote[2]; + + if(!toplay)nosound(); + else sound(notefreqs[toplay%12]<<(toplay/12)); + } + else + if(auditype==2) + { + int c; + + if(!subtick) + for(c=0;c<3;c++) + if(!chnote[c]) + { + adlib(0x40+c,2); + adlib(0x43+c,1); + } + else + { + int n=chnote[c]; + int bt=notefreqs[n%12]|(32*256)|((n/12)<<6); + + adlib(0xb0+c,bt>>8); + adlib(0xa0+c,bt&255); + + adlib(0x40+c,63); + adlib(0x43+c,63); + } + } + + subtick++; +} + +/*** adlib inits ***/ + +char instru[2][11]= +{ + 0xa1,0xa1,0xff,0xff,0x0f,0x0f,0x03,0x03,0x01,0x00,0x00, /* bass */ + 0xa2,0xa2,0xff,0xff,0x0f,0x0f,0x03,0x03,0x01,0x00,0x00, /* organ */ +}; + +void adl_ldinstr(int kanava,int i) +{ + char*ins=instru[i]; + char osotte[11] = { + 0x20,0x23,0x60,0x63,0x80,0x83,0xe0,0xe3,0xc0,0x40,0x43 }; + char *tmp=ins; char l; + for(l=0;l<11;l++) adlib(kanava+osotte[l],*tmp++); +} + +int initsound() +{ + if(auditype==1)nosound(); else + if(auditype==2) + { + int l; + + if(auditype==1) nosound(); + + for(l=0;l<244;l++) adlib(l,0); + adlib(0x01,0x20); + adl_ldinstr(0,1); + adl_ldinstr(1,1); + adl_ldinstr(2,1); + } +} + +void setvideomode() +{ + setvideo(0x0003); + setvideo(0x0013); + setvideo(0x1112); + /* 80x25: setvideo(0x0003);setvideo(0x1003)*/ + + /* fill with something? */ +} + +/******************** + * + * video-related + */ + +void pwplib_loopflush() +{ + dump80501616(pwplib_buf); + /* if setup_mono==2: dumpmono(pwplib_buf); */ +} + +int initvideo() +{ + setvideo(0x0003); + setvideo(0x0013); + setvideo(0x1112); +} diff -r 000000000000 -r acb5694e93d9 nykyaeka/Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/Makefile.in Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,21 @@ +all: nykyaeka + +############################ + +OBJS= sprites.o main.o musa.o planes.o landscro.o + +sprites.o: sprites.c sprites.h font.h + +sprites.h: sprites.pl + ./sprites.pl > sprites.h + +musa.o: musa.c musa.h + +musa.h: musa.pl + ./musa.pl > musa.h + +font.h: font.pl + ./font.pl > font.h + +clean: + rm -rf *.o *~ nykyaeka *.exe mssrc diff -r 000000000000 -r acb5694e93d9 nykyaeka/font.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/font.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,24 @@ +#include "pwpdemo.h" + +#include "font.h" + +void writetext(char*txt,unsigned char*font) +{ + int wdt=0; + + int z=*txt-'A',a; + + while(z) + { + if(*font==0)z--; + font++; + } + while((a=*font)) + { + char*d= + for(;a;a>>=1) + { + d+= + } + } +} diff -r 000000000000 -r acb5694e93d9 nykyaeka/font.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/font.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,35 @@ +unsigned char font[]={ +0x00, +0x78,0x7f,0x9,0x9,0x7f,0x7f,0x00, +0x7f,0x7f,0x49,0x49,0x4f,0x78,0x00, +0x78,0x7f,0x41,0x41,0x41,0x41,0x00, +0x7f,0x41,0x41,0x41,0x7f,0x78,0x00, +0x78,0x7f,0x49,0x49,0x41,0x41,0x00, +0x78,0x7f,0x9,0x9,0x1,0x1,0x00, +0x78,0x7f,0x41,0x41,0x59,0x79,0x00, +0x78,0x7f,0x8,0x8,0x7f,0x7f,0x00, +0x78,0x7f,0x00, +0x60,0x60,0x40,0x78,0x7f,0x00, +0x7f,0x78,0xc,0x1e,0x73,0x61,0x61,0x00, +0x78,0x7f,0x40,0x40,0x40,0x40,0x00, +0x78,0x7f,0x1,0x79,0x7f,0x1,0x7f,0x7f,0x00, +0x78,0x7f,0x1,0x1,0x7f,0x7f,0x00, +0x78,0x7f,0x41,0x41,0x41,0x7f,0x00, +0x7f,0x79,0x9,0x9,0x9,0xf,0x00, +0x78,0x7f,0x41,0x51,0x71,0x7f,0x00, +0x78,0x7f,0x1,0x1,0x1,0x1,0x00, +0x40,0x4f,0x49,0x49,0x79,0x79,0x00, +0x1,0x1,0x79,0x7f,0x1,0x1,0x00, +0x7f,0x78,0x40,0x40,0x7f,0x7f,0x00, +0xf,0x7f,0x70,0x40,0x7f,0xf,0x00, +0xf,0x7f,0x40,0x7f,0x7f,0x40,0x7f,0xf,0x00, +0x4f,0x4f,0x48,0x78,0x7f,0x9,0x9,0x79,0x00, +0x4f,0x4f,0x48,0x48,0x78,0x7f,0x00, +0x79,0x79,0x49,0x49,0x49,0x4f,0x00, +0x7d,0x7d,0x14,0x15,0x7d,0x70,0x00, +0x70,0x7d,0x45,0x44,0x7d,0x7d,0x00, +0x8,0x8,0x18,0x18,0x00, +}; + +char font_lengths[]={1,7,7,7,7,7,7,7,7,3,6,8,7,9,7,7,7,7,7,7,7,7,7,9,9,7,7,7,7,5,}; + diff -r 000000000000 -r acb5694e93d9 nykyaeka/font.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/font.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,274 @@ +#!/usr/bin/perl + +sub encode_font() +{ + @lines=split("\n",$_[0]); + $widths=""; + $offsets=""; + $crroff=0; + for($i=0;$i<$#lines;$i+=8) + { + $byte=0; + $x=0; + do + { + $byte=0; + for($j=0;$j<8;$j++) + { + if(substr($lines[$i+$j],$x,1) eq 'a') { $byte |= (1<<$j); } + } + if($byte!=0) + { + printf("0x%x,",$byte); + $crroff++; + } + $x++; + } while($byte!=0); + $lengths.=sprintf("%d,",$x); + print "0x00,\n"; + } +} + +print "unsigned char font[]={\n"; +&encode_font(<pwplib_bufh-1) + hg=pwplib_bufh-1; + + memset(d,0x08,pwplib_bufw*(pwplib_bufw-hg)); + d+=pwplib_bufw*(pwplib_bufh-hg); + + for(y=0;y>4)*32*256); + {int x=pwplib_bufw; + for(;x;x--)*d++=texture1[((ofz+=dofz)>>8)&1023];} + k-=(k>>3); + } +} diff -r 000000000000 -r acb5694e93d9 nykyaeka/main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/main.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,223 @@ +#if 0 +# include +# include +# include +# include +#endif + +#include "pwplib.h" + +#define MAX(a,b) ((a)<(b)?(b):(a)) +#define MIN(a,b) ((a)>(b)?(b):(a)) + +struct +{ + int dsgtime; + + int flagz; + int planemode; + + int enctime,enckode,enczoom,encspeed; + + int endfxt; + + int metsaemode; + int bouncemode; +}demovar; + +void rundemo() +{ + int quit=0,fx=0; + + pwplib_startup(); + + decompress_allbmp(); + bwpals(); + + pwplib_buf= + malloc(sizeof(u8)*pwplib_bufw*pwplib_bufh); + +/* initfontbuf(); + + if(!pwplib_setup(NOSOUND)) + initplayer(); +*/ + if(!pwplib_setup(NOSOUND)) + initplayer(); + + pwplib_prep_attr(); + + demovar.flagz=8|16; + + {demovar.dsgtime=0; + demovar.endfxt=1<<30; + demovar.metsaemode=0; + while(!quit) + { + int t=pwplib_timer(); + + while(demovar.dsgtime=745 && t<=1152) sf_esittaa(); + + if(fx==1)planes_do(t,16+2);else + if(fx==2){memset(pwplib_buf,0x44,pwplib_bufw*pwplib_bufh*sizeof(u8)); + rotozoom_do(t,2);} + if(fx==3)rotozoom_do(t,1); + if(fx==4){tankit(t);naarmuta();} + if(fx==5)rotozoom_do(t,0); + if(fx==6){tankit2(t);} + if(fx==7){tankit2(t);isantapari(t);} + if(fx==8){memset(pwplib_buf,0x44,pwplib_bufw*pwplib_bufh*sizeof(u8)); + rotozoom_do(t,2);isantapari();} + if(fx==9){sflogo(t);naarmuta();} + + {int m=1;int z=t-1536-80; + if(t>1536+80 && fx!=16)m=1;else m=0; + addtext(t-1536-80,m);} + + if(t<1536+40 || fx>10)naarmuta(); + + pwplib_dump_rast(); + if(!quit)pwplib_loopflush(); + } + } + + pwplib_shutdown(); +} + +int main(int argc,char**argv) +{ + if(!pwplib_init(argc,argv))return 1; + + rundemo(); + + pwplib_shutdown(); + + return 0; +} diff -r 000000000000 -r acb5694e93d9 nykyaeka/make-mssrc.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/make-mssrc.sh Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,18 @@ +#!/bin/bash + +rm -rf mssrc +mkdir mssrc +cp ../msdos/* mssrc +cfilez=`echo *.c ../msdos/*.c | sed 's/..\/msdos\///g'` + +for i in *.c *.h +do + awk '{ print $0"\r" }' < $i > mssrc/$i +done + +for i in `echo $cfilez` +do + echo tcc -ml -GOdZ $i"\r" >> mssrc/make.bat +done + +echo tlink `echo $cfilez | sed 's/\.c//g'` c0l cl.lib,peluce.exe >> mssrc/make.bat diff -r 000000000000 -r acb5694e93d9 nykyaeka/musa.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/musa.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,72 @@ +#define pwplib_volume 64 + /* to pwplib.h -- pwplib.setup[SOUND_VOLUME] */ + +#include "pwpdemo.h" + +#include "musa.h" + +struct +{ + int ord,patt,row; + int tick,tempo; +}player; + +void newnote() +{ + int c=0; + + for(;c<3;c++) + { + int note=pwpmusic[player.patt][c][player.row]; + + if(note==253) + { + if(player.tempo==6)player.tempo=50;else + player.tempo=4; + }else + if(note==254) + pwplib_sound_nv(c,0,0); + else + if(note!=255) + pwplib_sound_nv(c,(note-5)<<8,pwplib_volume); + } + player.row++; + if(player.row==64) + { + player.row=0; + player.ord++; + player.patt=pwpmusic_order[player.ord]; + + if(player.patt>128) + { + if(player.patt==255)player.ord=0;else + { + if(player.patt==254)player.tempo=5; + player.ord++; + } + player.patt=pwpmusic_order[player.ord]; + } + } +} + +void playtick() +{ + if(player.tick==0) + newnote(); + + player.tick++; + if(player.tick==player.tempo) + player.tick=0; +} + +void initplayer() +{ + player.row=player.ord; + player.patt=pwpmusic_order[0]; + player.tick=0; + player.tempo=6; + pwplib_setplayer(playtick); +} + + +/* loopflush(); */ diff -r 000000000000 -r acb5694e93d9 nykyaeka/musa.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/musa.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,126 @@ +u8 pwpmusic[][3][64]={ + + +/*** pattern 0 ***/ + +56,255,255,254,56,255,58,255,59,255,255,254,56,255,255,254,58,255,56,255,54,255,52,255,51,255,255,254, +58,255,255,254,63,255,61,255,59,255,58,255,63,255,61,255,59,255,58,255,59,254,255,255,56,255,255,255, +255,254,254,/* 59 */255,255,255,255,255, + +32,254,254,255,32,254,254,255,32,254,254,255,32,254,254,255,30,254,254,255,30,254,254,255,30,254,254, +255,30,254,254,255,35,254,254,255,35,254,254,255,35,254,254,255,35,254,254,255,32,254,254,255,32,254, +254,255,32,254,254,255,32,254,254,255,/* 64 */ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + + + +/*** pattern 1 ***/ + +58,255,59,255,61,255,63,255,58,255,59,255,61,255,63,255,59,255,58,255,59,255,58,255,56,255,255,254,59, +255,255,255,58,255,59,255,61,255,63,255,58,255,59,255,61,255,63,255,59,254,254,254,56,255,255,255,255, +254,254,/* 59 */255,255,255,255,255, + +34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,32,254,254, +255,32,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,32,254,254,255,32,254, +254,255,32,254,254,255,32,254,254,255,/* 64 */ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + + + +/*** pattern 2 ***/ + +58,255,59,255,61,255,63,255,58,255,59,255,61,255,63,255,59,255,58,255,59,255,58,255,56,255,255,254,59, +255,255,255,58,255,59,255,61,255,63,255,58,255,59,255,61,255,63,255,56,255,255,255,255,255,255,254,253, +254,253,/* 59 */255,255,255,255,255, + +34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,32,254,254, +255,32,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,34,254,254,255,32,254,254,255,254,254, +254,255,254,254,254,255,254,254,254,255,/* 64 */ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + + + +/*** pattern 3 ***/ + +56,254,56,254,59,255,56,255,63,255,56,255,59,255,56,254,255,255,56,255,59,255,56,255,63,255,56,255,59, +255,56,255,59,254,59,254,63,255,59,255,66,255,59,255,61,255,54,254,255,255,54,255,58,255,54,255,61,255, +54,255,58,255,54,255,/* 64 */ + +32,254,32,254,35,254,35,254,39,254,39,254,35,254,35,254,32,254,32,254,35,254,35,254,39,254,39,254,35,254, +35,254,35,254,35,254,37,254,37,254,42,254,42,254,37,254,37,254,34,254,34,254,37,254,37,254,42,254,42,254, +37,254,37,254,/* 64 */ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + + + +/*** pattern 4 ***/ + +61,254,61,254,64,255,61,255,68,255,61,255,64,255,61,254,255,255,61,255,64,255,61,255,68,255,61,255,64, +255,61,255,64,254,64,254,68,255,64,255,71,255,64,255,66,255,59,254,255,255,59,255,63,255,59,255,66,255, +59,255,63,255,59,255,/* 64 */ + +37,254,37,254,40,254,40,254,44,254,44,254,40,254,40,254,37,254,37,254,40,254,40,254,44,254,44,254,40,254, +40,254,40,254,40,254,42,254,42,254,47,254,47,254,42,254,42,254,39,254,39,254,42,254,42,254,47,254,47,254, +42,254,42,254,/* 64 */ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + + + +/*** pattern 5 ***/ + +63,254,63,254,66,255,63,255,70,255,63,255,66,255,63,254,255,255,63,255,66,255,63,255,70,255,63,255,66, +255,63,255,66,254,66,254,70,255,66,255,73,255,66,255,68,255,61,254,255,255,61,255,65,255,61,255,68,255, +61,255,65,255,61,255,/* 64 */ + +39,254,39,254,42,254,42,254,46,254,46,254,42,254,42,254,39,254,39,254,42,254,42,254,46,254,46,254,42,254, +42,254,42,254,42,254,44,254,44,254,49,254,49,254,44,254,44,254,41,254,41,254,44,254,44,254,49,254,49,254, +44,254,44,254,/* 64 */ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + + + +/*** pattern 6 ***/ + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + +/* 0 */255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, + +}; + +u8 pwpmusic_order[]={ +0, 0, 1, 2, +3, 3, 4, 4, +3, 3, 4, 4, +3, 3, 4, 4, +3, 3, 4, 4, +3, 3, 4, 4, +3, 3, 4, 4, 2, 6, +0, 0, 1, 2, 6,6,6 +}; + diff -r 000000000000 -r acb5694e93d9 nykyaeka/musa.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/musa.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,138 @@ +#!/usr/bin/perl + +sub comment +{ + print "\n\n/*** $_[0] ***/\n\n"; +} + +sub newline +{ + print "\n"; + $pos=0; +} + +sub wr +{ + $_=$_[0]; + + $pos+=length($_); + print $_,","; + if($pos>72) { newline(); } +} + +$pat=0; +sub newpat +{ + comment("pattern $pat"); + return $pat++; +} + +sub music +{ + $nct=0; + $base=8; + + if($_[1]){ $base+=$_[1];} + + $_=$_[0]; + + $_=join('!',split('',$_)); + s/\!\#/\#/g; + + foreach(split('!',$_)) + { + $note=""; + + if ($_ eq '<') { $base -= 12; } + if ($_ eq '>') { $base += 12; } + + if ($_ eq '|') { $note = 253; } + if ($_ eq '.') { $note = 254; } + if ($_ eq ',') { $note = 255; } + + if ($_ eq 'c') { $note = 0; } + if ($_ eq 'c#') { $note = 1; } + if ($_ eq 'd') { $note = 2; } + if ($_ eq 'd#') { $note = 3; } + if ($_ eq 'e') { $note = 4; } + if ($_ eq 'f') { $note = 5; } + if ($_ eq 'f#') { $note = 6; } + if ($_ eq 'g') { $note = 7; } + if ($_ eq 'g#') { $note = 8; } + if ($_ eq 'a') { $note = 9; } + if ($_ eq 'a#') { $note = 10; } + if ($_ eq 'b') { $note = 11; } + + if ($note ne "") + { + if ($note<128) { wr($base+$note); } + else { wr($note); } + $nct++; + } + } + + print "/* $nct */"; + + if($nct<64) { for(;$nct<64;$nct++) { wr(255); }} + + newline(); + newline(); +} + +##################################################################################################### + +print "u8 pwpmusic[][3][64]={\n"; + +$taisto0=newpat(); +music("c,,.c,d,d#,,.c,,.d,c,d,,.g,f,d#,d,g,f,d#,d,d#.,,c,,,,..",48); +music("c..,c..,c..,c..,d#..,d#..,d#..,d#..,c..,c..,c..,c..,",24); +music(""); + +$taisto1=newpat(); +music("d,d#,f,g,d,d#,f,g,d#,d,d#,d,c,,.d#,,,d,d#,f,g,d,d#,f,g,d#...c,,,,..",48); +music("d..,d..,d..,d..,d..,d..,c..,c..,d..,d..,d..,d..,c..,c..,c..,c..,",24); +music(""); + +$taisto1b=newpat(); +music("d,d#,f,g,d,d#,f,g,d#,d,d#,d,c,,.d#,,,d,d#,f,g,d,d#,f,g,c,,,,,,.|.|",48); +music("d..,d..,d..,d..,d..,d..,c..,c..,d..,d..,d..,d..,c..,...,...,...,",24); +music(""); + +$tiluli0=newpat(); +music("c.c.d#,c,g,c,d#,c.,,c,d#,c,g,c,d#,c,d#.d#.g,d#,a#,d#,f,d,f,d,ddd,f,d,d,f,d,>1)*dv + -(pwplib_bufw>>1)*du; + + int y=pwplib_bufh; + + dv-=du*pwplib_bufw; + + for(;y;y--) + { + for(x=pwplib_bufw;x;x--) + { + *d++=map[(i>>8)&255]; + i+=du; + } + i+=dv; + } +} + +void xorplanes_draw(u8*map,int angle,int angle2,int midpt,int midpt2) +{ + register u8*d=pwplib_buf; + + register int x; + + register int du=(SIN(angle)*MIN(pwplib_bufw,pwplib_bufh))/4096, + du2=(SIN(angle2)*MIN(pwplib_bufw,pwplib_bufh))/4096; + + int dv=(COS(angle)*pwplib_bufh)/6666, + dv2=(COS(angle2)*pwplib_bufh)/6666; + + register int i=midpt*256-(pwplib_bufh>>1)*dv + -(pwplib_bufw>>1)*du, + j=midpt2*256-(pwplib_bufh>>1)*dv2 + -(pwplib_bufw>>1)*du2; + + int y=pwplib_bufh; + + for(;y;y--) + { + int ii=i,jj=j; + for(x=pwplib_bufw;x;x--) + { + *d++=map[(ii>>8)&255]^map[(jj>>8)&255]; + ii+=du;jj+=du2; + } + i+=dv;j+=dv2; + } +} + + +void planes_do(int t,int m) +{ + u8*tabbu[3]={psychtab0,psychtab1,psychtab2}; + u8 map[256]; + u8*tabu=tabbu[m&15]; + + int step=1024,i,j=-t*80; + + for(i=0;i<128;i++) + { + map[i]=map[255-i]=tabu[(j>>8)&63]; + j+=step; + + step-=(step>>4); + } + + if(m&16) + planes_draw(map,t*3,SIN(t)/512);else + xorplanes_draw(map,t,t*3/11, + SIN(t)/512, + SIN(((long int)t*(608/16))/(1024*16)) ); +} + diff -r 000000000000 -r acb5694e93d9 nykyaeka/pwp-sf.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/pwp-sf.txt Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,322 @@ + ___ + / \ +| PWP | + \___/ + + +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... +....................................................................... + + + +nnnnn...y...y.k...kk..y...y.aaaaa...eeeee.k...kk.aaaaa. +nnnnn..yy...y.k...kk.yy...y.a...a...e.....k...kk.a...a. +nn..n..yy...y.k...k..yy...y.a...a...e.....k...k..a...a. +nn..n..yyyyyy.kkkkk..yyyyyy.aaaaa..eeee...kkkkk..aaaaa. +nn..nn.....yy.k..k.......yy.aa..aa.ee.....k..k...aa..aa +nn..nn.....yy.kk.kkk.....yy.aa..aa.ee.....kk.kkk.aa..aa +nn..nn.yyyyyy.kk.kkk.yyyyyy.aa..aa.eeeeee.kk.kkk.aa..aa + +7x55 + + +bitmap-pakkaus: + 1] paletted (n bits) + 2] elited: + + +glyph + data + y0:y1 + +fonttisysteemi: merkit isketään mahdollisimman lähelle toisiaan niin, +että joka suunnassa on n pikselin varoväli + +outbuffer - per scanline: x-right-extend + +xext + +5 >= n+2 +5 >= n+2 +1 >= n+2 +1 >= n+0 +5 - +5 - + + + for(i=0;i<7;i++) + if(font.xleft[ch][i + + +smallest n? + +try: 5=n+2, 5=n+2, 1=n+2, 1=n+0 + + + +find smallest n + +aaaaa. +a...a. +a...a. +aaaaa. +aa..aa +aa..aa +aa..aa + +aaaaa. +aa..a. +aa..a. +aaaaaa +aa...a +aa...a +aaaaaa + +.aaaaa +.a.... +.a.... +aa.... +aa.... +aa.... +aaaaaa + +aaaaa. +a...a. +a...a. +a...aa +a...aa +a...aa +aaaaaa + +.aaaaa +.a.... +.a.... +aaaa.. +aa.... +aa.... +aaaaaa + +.aaaaa +.a.... +.a.... +aaaa.. +aa.... +aa.... +aa.... + +.aaaaa +.a.... +.a.... +aa..aa +aa..aa +aa...a +aaaaaa + +.a..a. +.a..a. +.a..a. +aaaaaa +aa..aa +aa..aa +aa..aa + +.a +.a +.a +aa +aa +aa +aa + +....a +....a +....a +...aa +...aa +aa.aa +aaaaa + +a..aaaa +a..aa.. +a..aa.. +aaaaa.. +aa..a.. +aa..aaa +aa..aaa + +.a.... +.a.... +.a.... +aa.... +aa.... +aa.... +aaaaaa + +.aaaaaaa +.a..a.aa +.a..a.aa +aa.aa.aa +aa.aa.aa +aa.aa.aa +aa.aa.aa + +.aaaaa +.a..aa +.a..aa +aa..aa +aa..aa +aa..aa +aa..aa + +.aaaaa +.a...a +.a...a +aa...a +aa...a +aa...a +aaaaaa + +aaaaaa +a....a +a....a +aaaaaa +aa.... +aa.... +aa.... + +.aaaaa +.a...a +.a...a +aa...a +aa.aaa +aa..aa +aaaaaa + +.aaaaa +.a.... +.a.... +aa.... +aa.... +aa.... +aa.... + +.aaaaa +.a.... +.a.... +.aaaaa +....aa +....aa +aaaaaa + +aaaaaa +...a.. +...a.. +..aa.. +..aa.. +..aa.. +..aa.. + +a...aa +a...aa +a...aa +aa..aa +aa..aa +aa..aa +aaaaaa + +aa..aa +aa..aa +aa..aa +aa..aa +aa..a. +aa..a. +aaaaa. + +aa.aa.aa +aa.aa.aa +aa.aa.aa +aa.aa.aa +.a.aa.a. +.a.aa.a. +.aaaaaa. + +aa..aaaa +aa..a... +aa..a... +aaaaaaaa +...aa..a +...aa..a +aaaaa..a + +aa...a +aa...a +aa...a +aaaaaa +....aa +....aa +aaaaaa + +aaaaaa +.....a +.....a +aaaaaa +aa.... +aa.... +aaaaaa + +aa.aa. +...... +aaaaa. +aa..a. +aaaaaa +aa..aa +aa..aa + +.aa.aa +...... +.aaaaa +.a..aa +aa..aa +aa..aa +aaaaaa + + + +purkurutiini: + + + + n y k y a e k a + + k + \ No newline at end of file diff -r 000000000000 -r acb5694e93d9 nykyaeka/pwpdemo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/pwpdemo.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,17 @@ +#include "pwplib.h" +#define USE_SINTAB + +#define MAX(a,b) ((a)>(b)?(a):(b)) +#define MIN(a,b) ((a)<(b)?(a):(b)) + +#ifndef USE_SINTAB +#define SIN(a) (sin((a)*3.1415926/128)*32767) +#define COS(a) ((3.1415926/2)+(cos((a)*3.1415926/128))*32767) +#else +#ifndef HAS_SINTAB +extern signed int sintab16[]; +#endif +#define SIN(a) sintab16[(a)&255] +#define COS(a) sintab16[((a)+64)&255] +#endif + diff -r 000000000000 -r acb5694e93d9 nykyaeka/spritegen.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/spritegen.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,23 @@ +&bitmap('pelu':'n:44:00/ :00:ff/@:7f:00/.:11:82/x:44:00/Z:e6:00/',< +#include + +#include "pwpdemo.h" + +typedef struct +{ + int width,height; + u8*pict; + u8*mask; +}sprite; + +#include "sprites.h" + +#include "font.h" + +#define INLINE + /* to pwplib.h -- #define INLINE inline */ + +INLINE void zoomsprite_loop + (mask, pict, xzoom, d, xo0, xdim, ydim, spwidth, yzoom, yo0) +register u8* mask, *pict; +register int xzoom; +u8* d; +int xo0, xdim, ydim, spwidth, yzoom, yo0; +{ + register u8 *dd, *m, *p; + register int xo, x; + + for(;ydim;ydim--) + { + int linebase = (yo0>>8) * spwidth; + + m = mask + linebase; + p = pict + linebase; + dd = d; + xo = xo0; + + for(x=xdim;x;x--) + { + register int z=xo>>8; + + *dd++ = (*dd & m[z]) | p[z]; + + xo += xzoom; + } + + yo0 += yzoom; + d += pwplib_bufw; + } +} + +void zoomsprite(int x0,int y0,sprite*sp,int xzoom,int yzoom) +{ + int xdim,ydim, + xo0=0,yo0=0,x,y,ptr; + + if(xzoom<=32 && yzoom<=32)return; + + xdim=(sp->width<<8)/xzoom; + ydim=(sp->height<<8)/yzoom; + + x0-=(xdim>>1); + y0-=(ydim>>1); + + if(x0<0) + { + xdim+=x0; + xo0=(0-x0)<<8; + x0=0; + } + + if(y0<0) + { + ydim+=y0; + yo0=(0-y0)<<8; + y0=0; + } + + if(x0+xdim>=pwplib_bufw) + { + xdim=pwplib_bufw-x0; + } + + if(y0+ydim>=pwplib_bufh) + { + ydim=pwplib_bufh-y0; + } + + if(xdim<=0 || ydim<=0) return; + + zoomsprite_loop + ( + sp->mask, sp->pict, xzoom, + pwplib_buf+x0+y0*pwplib_bufw, + xo0, xdim, ydim, sp->width, yzoom, yo0 + ); +} +/* + (mask, pict, xzoom, d, xo0, xdim, ydim, spwidth, yzoom, yo0) +*/ + +void zoomsprite_gen(int x0,int y0,sprite*sp,int zoom) +{ + zoomsprite(((x0+128)*pwplib_bufw)>>8, + ((y0+128)*pwplib_bufh)>>8, + sp, + abs((zoom<<8)/pwplib_bufw), + abs((zoom<<7)/pwplib_bufh) + ); +} + +/* +void metsae(int t,int mode) +{ + int i,x; + + const sprite*mo[]={&kuusi}; + const int mosiz[]={128}; + const int mostep[]={64}; + + for(i=0;i<512;i+=mostep[mode]) + { + zoomsprite_gen( + ((i-t/3)&511)-256 ,0,mo[mode],mosiz[mode]); + } +} + +void drawkiller(int tminus) +{ + int ttt=tminus; + + if(tminus<-64)tminus=-64;else + if(tminus>0)tminus=0; + + zoomsprite_gen(tminus,48,(ttt&16)?&pelustna0:&pelustna1,80); +} + +void encounter(int tminus,int kode,int zoom,int speed) +{ + int ttt=tminus; + sprite*pum[][2]= + { + &krist0,&krist1, + &pelusieni,&pelusieni, + &pelusieni1,&pelusieni1, + &pelusieni2,&pelusieni2, + &pelux,&pelux, + &pelustna0,&pelustna1, + &ruumis,&ruumis, + &uusmed0,&uusmed1, + &tesno0,&tesno1, + &army0,&army0, + &windows0,&windows1, + &quake0,&quake0 + }; + + if(ttt<0)ttt=0; + + zoomsprite_gen(0+ttt,48,(tminus&16)?pum[kode][0]:pum[kode][1],zoom); +} +*/ + +void sflogo(int t) +{ + int a=rand(); + + zoomsprite_gen(0,0, &pwp_sf, + t<256?(256+48-t):48); +} + +void sf_esittaa() +{ + zoomsprite_gen(-32,-32,&esittaa,96); + zoomsprite_gen(32,32,&forevisar,96); +} +void isantapari(int t) +{ + zoomsprite_gen((SIN(t/2)*16)>>16,64,&isanta,64); +} + +void tankit(int t) +{ + int i=7;int col1=0x88,col2=0x02; + + if(!((t^(t>>2))&511)){col1=0xff;col2=0x7f;} + + memset(pwplib_buf,col1,pwplib_bufw*pwplib_bufh/2); + memset(pwplib_buf+pwplib_bufw*pwplib_bufh/2,col2,pwplib_bufw*pwplib_bufh/2); + + for(;i;i--) + { + zoomsprite_gen(((t+i*84)&511)-256,8+i*8,&tankki,128-i*4); + } +} + +void tankit2(int t) +{ + int i=7;int col1=0x11,col2=0x08; + + memset(pwplib_buf,col1,pwplib_bufw*pwplib_bufh/2); + memset(pwplib_buf+pwplib_bufw*pwplib_bufh/2,col2,pwplib_bufw*pwplib_bufh/2); + + for(;i;i--) + { + zoomsprite_gen(((t+i*84)&511)-256,8+i*8,&tumpsa,128-i*4); + } +} + +/******************/ + +char scale[3][8]={ + 0x00,0x08,0x80,0x88,0x87,0x77,0xf7,0xff, + 0x00,0x08,0x07,0x80,0x88,0x87,0x77,0x7f, + 0x00,0x06,0x60,0x66,0x6e,0xe6,0xee,0xef +}; + +char bwpal[8][256]; +void bwpals() +{ + int i,j; + for(i=0;i<8;i++) + { + int gamma=rand()&3; + int brite=256+(rand()&15)-(rand()&15); + int scl=rand()%3; + + for(j=0;j<256;j++) + { + int it=((j&1)?1:0)+((j&2)?6:0)+((j&4)?3:0)+((j&8)?5:0)+ + ((j&16)?3:0)+((j&32)?12:0)+((j&64)?8:0)+((j&128)?8:0); + + it+=gamma; + it=(it*brite)>>8; + if(it>63)it=63; + + it/=8; + + bwpal[i][j]=scale[scl][it]; + } + } +} + +void naarmuta() +{ + int i=pwplib_bufh*pwplib_bufw; + static int ph=0,rr=0,nrmx=0; + + char*d=pwplib_buf; + char*lookup=&bwpal[rr&7][0]; + ph++;if(!(ph&3))rr=rand(); + + for(i=100;i;i--) + { + int z=rand()%(pwplib_bufw*pwplib_bufh); + pwplib_buf[z]^=0x87; + } + + for(i=0;i=pwplib_bufw) nrmx=rand()%pwplib_bufw; + } + + i=pwplib_bufh*pwplib_bufw; + for(;i;i--){*d=lookup[*d];d++;} +} + +sprite textbuf={0,0,NULL,NULL}; + +void killtext() +{ + if(textbuf.width){textbuf.width=0;free(textbuf.pict);free(textbuf.mask);} +} + +void drawtext(char*txt,int col) +{ + int wdt=0,x=0,y=0,idx,hgt=7; + unsigned char*f,*fnt=font; + + killtext(); + {char*t=txt; + for(;;) + {int thiswdt=0; + while(*t && *t!='\n'){thiswdt+=font_lengths[(*t>='A'&&*t<=']')?(*t-'@'):4];t++;} + if(thiswdt>wdt)wdt=thiswdt; + if(!*t)break; else {t++;hgt+=11;} + }} + + textbuf.width=wdt+1; + textbuf.height=hgt+1; + { int sz=textbuf.height*textbuf.width*sizeof(u8); + textbuf.pict=malloc(sz); + textbuf.mask=malloc(sz); + memset(textbuf.pict,0,sz); + memset(textbuf.mask,0xff,sz);} + + while(*txt) + { + int z=*txt,a; + + txt++; + + if(z=='\n'){x=0;y+=textbuf.width*11;continue;} + + z-='@'; + if(z<0 || z>29){x+=4;continue;} + + f=fnt; + while(z) + { + if(*f==0)z--; + f++; + } + + while((a=*f)) + { + idx=x+y; + + for(;a;a>>=1) + { + if(a&1){textbuf.pict[idx]=col; + textbuf.mask[idx]=0; + if(textbuf.mask[idx+1+textbuf.width]) + { + textbuf.pict[idx+textbuf.width+1]= + textbuf.mask[idx+textbuf.width+1]=0; + } + } + + idx+=textbuf.width; + } + x++; + f++; + } + x++; /* x+=2; */ + } +} + +void addtext(int t,int m) +{ + if(m==1)m=96+abs((t-32)&63-32);else m=96; + if(textbuf.width) + { + zoomsprite_gen(0,0,&textbuf,m); + } +} + +void rotozoompaski(u8*s,int u0,int v0,int du,int dv) +{ + u8*d=pwplib_buf; + int i,j,u,v; + int idu=du/pwplib_bufw,idv=dv/pwplib_bufw, + odu=dv/pwplib_bufh,odv=-du/pwplib_bufh; + + for(i=pwplib_bufh;i;i--) + { + int iu=u,iv=v; + for(j=pwplib_bufw;j;j--) + { + *d++=s[((iu>>4)&(1023&~31))|((iv>>9)&31)]; + iu+=idu;iv+=idv; + } + u+=idv;v+=-idu; + } +} + +void rotozoom_do(int t,int m) +{ + u8*poo[]={piimae.pict,pelu.pict,taehti.pict}; + int u=SIN(t),v=COS(t); + rotozoompaski(poo[m],(-u+v)*32,(-v-u)*32,u,v); +} diff -r 000000000000 -r acb5694e93d9 nykyaeka/sprites.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/sprites.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,145 @@ +u8*pwp_sf_pict,pwp_sf_mask; +u8 pwp_sf_cmpr[]={ +0xe5,0x00,0xff,0xeb,0x7f,0x00,0x9,0x2d,0x7,0x22,0xb,0x22,0x5,0x22,0xd,0x22,0x3,0x22, +0x1,0x23,0x1,0x21,0x3,0x21,0x1,0x23,0x1,0x22,0x1,0x22,0x2,0x21, +0x1,0x21,0x1,0x21,0x3,0x21,0x1,0x21,0x1,0x21,0x2,0x24,0x2,0x21, +0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x2,0x24, +0x2,0x23,0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x23,0x2,0x24,0x2,0x21, +0x3,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x4,0x24,0x2,0x21,0x3,0x21, +0x1,0x21,0x1,0x21,0x1,0x21,0x4,0x22,0x1,0x22,0x1,0x21,0x3,0x25, +0x1,0x21,0x3,0x22,0x3,0x22,0xd,0x22,0x5,0x22,0xb,0x22,0x7,0x2d, +0x9,0x2b,0x5,}; +sprite pwp_sf ={ 21,15,(char*)119,pwp_sf_cmpr}; + +u8*esittaa_pict,esittaa_mask; +u8 esittaa_cmpr[]={ +0xf8,0x00,0xff,0xe1,0x7f,0x00,0x2,0x21,0x2,0x21,0x2,0x21,0x12,0x21,0x3, +0x21,0x10,0x23,0x3,0x23,0x3,0x21,0x1,0x23,0x1,0x23,0x2,0x24,0x2, +0x24,0x2,0x21,0x3,0x21,0x1,0x21,0x9,0x21,0x3,0x21,0x2,0x21,0x3, +0x21,0x1,0x21,0x3,0x21,0x2,0x24,0x3,0x23,0x3,0x21,0x2,0x21,0x3, +0x21,0x2,0x21,0x3,0x21,0x1,0x21,0x3,0x21,0x2,0x21,0x9,0x21,0x2, +0x21,0x2,0x21,0x3,0x21,0x2,0x21,0x3,0x21,0x1,0x21,0x3,0x21,0x3, +0x23,0x1,0x25,0x2,0x21,0x2,0x21,0x2,0x22,0x4,0x23,0x3,0x23,0x1, +0x21,0x1,}; +sprite esittaa ={ 36,7,(char*)101,esittaa_cmpr}; + +u8*forevisar_pict,forevisar_mask; +u8 forevisar_cmpr[]={ +0xe6,0x00,0xff,0xe1,0x7f,0x00,0x2,0x21,0x1f,0x1f,0x17,0x22,0x2,0x22,0x2,0x21, +0x1,0x22,0x2,0x22,0x2,0x21,0x2,0x21,0x2,0x21,0x2,0x23,0x3,0x24, +0x2,0x21,0x1,0x22,0x2,0x21,0x3,0x21,0x2,0x21,0x1,0x22,0x3,0x21, +0x2,0x21,0x1,0x21,0x2,0x21,0x4,0x21,0x5,0x21,0x3,0x21,0x2,0x22, +0x4,0x21,0x3,0x21,0x2,0x21,0x1,0x21,0x4,0x23,0x3,0x21,0x1,0x21, +0x2,0x21,0x2,0x23,0x2,0x21,0x3,0x21,0x2,0x21,0x3,0x25,0x1,0x21, +0x2,0x21,0x1,0x21,0x4,0x21,0x5,0x21,0x1,0x21,0x2,0x21,0x5,0x21, +0x1,0x21,0x3,0x21,0x2,0x21,0x5,0x21,0x4,0x22,0x2,0x21,0x5,0x24, +0x2,0x22,0x1,0x21,0x2,0x24,0x3,0x23,0x2,0x21,0x6,0x21,0x1f,0xe, +0x21,0x1f,0xc,}; +sprite forevisar ={ 46,9,(char*)131,forevisar_cmpr}; + +u8*pelu_pict,pelu_mask; +u8 pelu_cmpr[]={ +0xff,0x00,0xff,0x2,0xff,0x00,0xff,0x1,0x3f,0x1,0x3f,0x1,0x3f,0x2a,0xeb, +0x44,0x00,0x39,0x42,0x3e,0x42,0x35,0xed,0x44,0x00,0x37,0x6a,0x36,0xe4,0x11,0x82,0xe6,0xe6,0x00,0x36,0x85,0xe5, +0x87,0x00,0x36,0x81,0xe1,0xff,0x00,0x83,0xc5,0x36,0x84,0xc7,0x35,0xcb,0x33,0xcd,0x31,0xcf, +0x3a,0xc4,0x33,0x62,0x24,0xc7,0x33,0xcd,0x35,0xcb,0x37,0xc9,0x37,0xc9, +0x39,0xc6,0x3b,0xc5,0x3c,0xc4,0x2f,0xe1,0x00,0xff,0xff,0x00,0xff,0x21,0x5f,0x21,0x5f,0x21, +0x5f,0x21,0x5f,0x21,0x5f,}; +sprite pelu ={ 32,32,(char*)92,pelu_cmpr}; + +u8*piimae_pict,piimae_mask; +u8 piimae_cmpr[]={ +0xff,0x00,0xff,0x2,0xff,0x00,0xff,0x1,0x3f,0x1,0x3f,0x2d,0xe4, +0xee,0x00,0x3c,0xe4,0x66,0x00,0x3c,0x64,0x3b,0x63,0xe1,0x6e,0x88,0x62,0x38,0x65,0x81,0x64,0x35,0x6c, +0x33,0x69,0x83,0x62,0x31,0x6b,0x82,0x63,0x30,0x6c,0x81,0x63,0x30,0x70, +0x30,0x70,0x30,0xf0,0x7f,0x00,0x30,0xa1,0xe5,0x00,0x00,0xa2,0xc1,0xa2,0xc1,0xa2,0xc1,0xa1, +0x30,0xa1,0xc1,0xa3,0xc1,0xa2,0xc1,0xa2,0xc1,0xa2,0xc2,0x30,0xa1,0xc5, +0xa2,0xc1,0xa2,0xc1,0xa2,0xc1,0xa1,0x30,0xa1,0xc1,0xa6,0xc1,0xa2,0xc1, +0xa2,0xc1,0xa1,0x30,0xa1,0xc1,0xa6,0xc1,0xa2,0xc1,0xa2,0xc1,0xa1,0x30, +0xa1,0xc1,0xa6,0xc1,0xa2,0xc1,0xa2,0xc1,0xa1,0x30,0xb0,0x30,0x70,0x30, +0x70,0x30,0x70,0x30,0x70,0x29,0x1,0x3f,0x1,0x3f,0x1,0x3f,0x1,0x3f, +0x1,0x3f,}; +sprite piimae ={ 32,32,(char*)137,piimae_cmpr}; + +u8*taehti_pict,taehti_mask; +u8 taehti_cmpr[]={ +0xff,0x44,0x00,0x2,0xff,0x44,0x00,0x1,0x3f,0x1,0x2a,0xe1,0x6e,0x00,0x23,0x41,0x23,0x41, +0x2c,0x1,0x2a,0x42,0x21,0x43,0x21,0x42,0x2c,0x1,0x2b,0x47,0x2d,0x1, +0x2b,0x47,0x2d,0x1,0x29,0x4b,0x2b,0x1,0x2b,0x47,0x2d,0x1,0x2b,0x47, +0x2d,0x1,0x2a,0x42,0x21,0x43,0x21,0x42,0x2c,0x1,0x2a,0x41,0x23,0x41, +0x23,0x41,0x2c,0x1,0x3f,0x1,0x3f,0x1,0x23,0x43,0x23,0x44,0x22,0x42, +0x22,0x44,0x23,0x44,0x21,0x1,0x22,0x42,0x21,0x42,0x21,0x42,0x22,0x42, +0x21,0x42,0x21,0x42,0x22,0x42,0x21,0x42,0x22,0x42,0x1,0x22,0x42,0x24, +0x42,0x22,0x42,0x21,0x45,0x22,0x42,0x24,0x42,0x21,0x1,0x22,0x42,0x21, +0x42,0x21,0x42,0x22,0x42,0x21,0x42,0x21,0x42,0x22,0x42,0x21,0x42,0x22, +0x42,0x1,0x23,0x43,0x23,0x44,0x22,0x42,0x22,0x44,0x23,0x44,0x21,0x1, +0x3f,0x1,0x3f,0x1,0x23,0x41,0x21,0x41,0x21,0x41,0x22,0x41,0x21,0x41, +0x21,0x41,0x22,0x41,0x21,0x41,0x21,0x41,0x22,0x41,0x21,0x41,0x21,0x41, +0x22,0x1,0x24,0x43,0x24,0x43,0x24,0x43,0x24,0x43,0x23,0x1,0x23,0x41, +0x21,0x41,0x21,0x41,0x22,0x41,0x21,0x41,0x21,0x41,0x22,0x41,0x21,0x41, +0x21,0x41,0x22,0x41,0x21,0x41,0x21,0x41,0x22,0x1,0x3f,0x1,0x3f,0x1, +0x3f,0x1,0x3f,0x1,0x3f,0x1,0x3f,0x1,0x3f,}; +sprite taehti ={ 32,31,(char*)223,taehti_cmpr}; + +u8*tankki_pict,tankki_mask; +u8 tankki_cmpr[]={ +0xf3,0x00,0xff,0xe4,0x77,0x00,0x1f,0x5,0x3b, +0x5,0x23,0x1,0x24,0x2,0xeb,0x88,0x00,0x12,0x21,0x41,0x21,0x41,0x23,0x41,0x22, +0x41,0x21,0x41,0x2d,0x41,0x23,0x41,0x23,0x41,0x21,0x6,0x22,0x44,0x21, +0x44,0x21,0x44,0x21,0x44,0x21,0x44,0x21,0x44,0x21,0x44,0x22,0x5,0x22, +0x41,0xe3,0x00,0x00,0x21,0x41,0x63,0x21,0x41,0x63,0x21,0x41,0x63,0x21,0x41,0x63, +0x21,0x41,0x63,0x21,0x41,0x63,0x22,0x5,0x22,0x41,0x63,0x21,0x41,0x63, +0x21,0x41,0x63,0x21,0x41,0x63,0x21,0x41,0x63,0x21,0x41,0x63,0x21,0x41, +0x63,0x22,0x5,}; +sprite tankki ={ 43,7,(char*)100,tankki_cmpr}; + +u8*tumpsa_pict,tumpsa_mask; +u8 tumpsa_cmpr[]={ +0xe3,0x00,0xff,0xe1,0x88,0x00,0x5,0x22,0x3,0x24,}; +sprite tumpsa ={ 6,3,(char*)10,tumpsa_cmpr}; + +u8*isanta_pict,isanta_mask; +u8 isanta_cmpr[]={ +0xf1,0x00,0xff,0xe4,0x02,0x00,0x17,0x27,0x4, +0xe3,0x77,0x00,0x12,0x46,0x2,0x43,0x6,0xe7,0x44,0x00,0x6,0x41,0xe1,0x00,0x00,0x42,0x81,0x41,0x1, +0x43,0xe2,0x6e,0x00,0x4,0x41,0x81,0x42,0x81,0x41,0x8,0x46,0x3,0xe2,0x19,0x00,0xa2,0x3, +0x46,0x9,0x41,0x82,0x41,0x2,0xc4,0x1,0xa2,0x2,0xa6,0x6,0xcb,0x5, +0xaa,0x3,0xcb,0x6,0xa1,0x1,0xab,0x41,0xc9,0x7,0xaa,0x4,0xc9,0x8, +0xaa,0x5,0xc6,0x9,0xaa,0x5,0x82,0x2,0x82,0x9,0xaa,0x3,0x84,0x2, +0x84,0x8,0x83,0x2,0x83,0x4,0x84,0x2,0x84,0x6,}; +sprite isanta ={ 30,14,(char*)99,isanta_cmpr}; + +void decompress_bitmap(u8*dpic,u8*dmask,u8*s,int count) +{ + u8 pal[7],palm[7],palidx=0; + u8 col,msk,rep,*s1=s+count; + + while(s>5; + + if(col==7){pal[palidx]=col=*s++;palm[palidx]=msk=*s++;palidx++;if(palidx==7)palidx=0;} + else{msk=palm[col];col=pal[col];} + + if(rep) + for(;rep;rep--){*dpic++=col;*dmask++=msk;} + } +} +sprite*allbmps[]={&pwp_sf,&esittaa,&forevisar,&pelu,&piimae,&taehti,&tankki,&tumpsa,&isanta,NULL }; +void decompress_allbmp() +{ + u8*d,*d2; + sprite**s=allbmps; + while(*s) + { + d=malloc((*s)->width*(*s)->height*sizeof(u8)); + d2=malloc((*s)->width*(*s)->height*sizeof(u8)); + decompress_bitmap(d,d2,(*s)->mask,(int)((*s)->pict)); + (*s)->pict=d; + (*s)->mask=d2; + s++; + } +} diff -r 000000000000 -r acb5694e93d9 nykyaeka/sprites.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nykyaeka/sprites.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,315 @@ +#!/usr/bin/perl + +# color=>grayscale palettes: +# +# 0x00,0x08,0x80,0x88,0x87,0x78,0x77,0x7f,0xf7,0xff + +########################### + +$spritz="sprite*allbmps[]={"; + +$wrct=0; +sub wr +{ + printf("0x%x,",$_[0]); + $wrct+=5; + if($wrct>=70){printf("\n");$wrct=0;} +} + +sub wrrle +{ + my ($ch,$cnt)=($_[0],$_[1]); + + if($cnt==0){return;} + + $z=-1; + for($i=0;$i<7;$i++){if($cpal[$i] eq $ch){$z=$i;}} + + if($z==-1) + { + $cpal[$cpalidx]=$ch; + $cpalidx++; + if($cpalidx==7){$cpalidx=0;} + wr((7<<5)|$cnt); + if($pal{ord($ch)} eq '') { print "/* ERROR - $ch */"; } + print $pal{ord($ch)}.","; + $sz+=3; + } + else + { + wr(($z<<5)|$cnt); + $sz++; + } +} + +sub bitmap +{ + $bmpname=$_[0]; + $sz=0; + + @colors=split('/',$_[1]); + foreach(@colors) + { + ($ch,$col,$msk)=split(':',$_); + $pal{ord($ch)}="0x".$col.",0x".$msk; + } + + @lines=split("\n",$_[2]); + $xdim=0;$ydim=0; + + foreach(@lines) + { + if(length($_)>$xdim) { $xdim=length($_); } + } + + print "u8*".$bmpname."_pict,".$bmpname."_mask;\n"; + print "u8 ".$bmpname."_cmpr[]={\n"; + $ydim=0; + + @cpal=('å','å','å','å','å','å','å');$cpalidx=0; + $repch="å";$repcnt=0; + foreach(@lines) + { + for($x=0;$x<$xdim;$x++) + { + $ch=substr($_,$x,1); + if($ch eq "") { $ch=" "; } + + if($ch eq $repch) + { + $repcnt++; + if($repcnt==31){$repcnt=0;wrrle($repch,31);} + } + else + { + wrrle($repch,$repcnt); + $repch=$ch;$repcnt=1; + } + } + $ydim++; + } + wrrle($repch,$repcnt); + print "};\n"; + print "sprite $bmpname ={ $xdim,$ydim,(char*)$sz,$bmpname"."_cmpr};\n\n"; + + $spritz .= '&'.$bmpname.','; +} + +&bitmap('pwp_sf','x:7f:00/ =:00:ff',<>5; + + if(col==7){pal[palidx]=col=*s++;palm[palidx]=msk=*s++;palidx++;if(palidx==7)palidx=0;} + else{msk=palm[col];col=pal[col];} + + if(rep) + for(;rep;rep--){*dpic++=col;*dmask++=msk;} + } +} +JOOH + +print $spritz,"NULL };\n"; + +print <width*(*s)->height*sizeof(u8)); + d2=malloc((*s)->width*(*s)->height*sizeof(u8)); + decompress_bitmap(d,d2,(*s)->mask,(int)((*s)->pict)); + (*s)->pict=d; + (*s)->mask=d2; + s++; + } +} +JOOH2 + diff -r 000000000000 -r acb5694e93d9 oldchsool/Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/Makefile.in Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,23 @@ +all: oldchsool + +OBJS = sprites.o main.o musa.o planes.o landscro.o + +############################ + +sprites.o: sprites.c sprites.h font.h + +sprites.h: sprites.pl + ./sprites.pl > sprites.h + +musa.o: musa.c musa.h + +musa.h: musa.pl + ./musa.pl > musa.h + +font.h: font.pl + ./font.pl > font.h + +clean: + rm -rf *.o *~ oldchsool *.exe + + diff -r 000000000000 -r acb5694e93d9 oldchsool/font.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/font.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,24 @@ +#include "pwpdemo.h" + +#include "font.h" + +void writetext(char*txt,unsigned char*font) +{ + int wdt=0; + + int z=*txt-'A',a; + + while(z) + { + if(*font==0)z--; + font++; + } + while((a=*font)) + { + char*d= + for(;a;a>>=1) + { + d+= + } + } +} diff -r 000000000000 -r acb5694e93d9 oldchsool/font.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/font.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,35 @@ +unsigned char font[]={ +0x00, +0x78,0x7f,0x9,0x9,0x7f,0x7f,0x00, +0x7f,0x7f,0x49,0x49,0x4f,0x78,0x00, +0x78,0x7f,0x41,0x41,0x41,0x41,0x00, +0x7f,0x41,0x41,0x41,0x7f,0x78,0x00, +0x78,0x7f,0x49,0x49,0x41,0x41,0x00, +0x78,0x7f,0x9,0x9,0x1,0x1,0x00, +0x78,0x7f,0x41,0x41,0x59,0x79,0x00, +0x78,0x7f,0x8,0x8,0x7f,0x7f,0x00, +0x78,0x7f,0x00, +0x60,0x60,0x40,0x78,0x7f,0x00, +0x7f,0x78,0xc,0x1e,0x73,0x61,0x61,0x00, +0x78,0x7f,0x40,0x40,0x40,0x40,0x00, +0x78,0x7f,0x1,0x79,0x7f,0x1,0x7f,0x7f,0x00, +0x78,0x7f,0x1,0x1,0x7f,0x7f,0x00, +0x78,0x7f,0x41,0x41,0x41,0x7f,0x00, +0x7f,0x79,0x9,0x9,0x9,0xf,0x00, +0x78,0x7f,0x41,0x51,0x71,0x7f,0x00, +0x78,0x7f,0x1,0x1,0x1,0x1,0x00, +0x40,0x4f,0x49,0x49,0x79,0x79,0x00, +0x1,0x1,0x79,0x7f,0x1,0x1,0x00, +0x7f,0x78,0x40,0x40,0x7f,0x7f,0x00, +0xf,0x7f,0x70,0x40,0x7f,0xf,0x00, +0xf,0x7f,0x40,0x7f,0x7f,0x40,0x7f,0xf,0x00, +0x4f,0x4f,0x48,0x78,0x7f,0x9,0x9,0x79,0x00, +0x4f,0x4f,0x48,0x48,0x78,0x7f,0x00, +0x79,0x79,0x49,0x49,0x49,0x4f,0x00, +0x7d,0x7d,0x14,0x15,0x7d,0x70,0x00, +0x70,0x7d,0x45,0x44,0x7d,0x7d,0x00, +0x8,0x8,0x18,0x18,0x00, +}; + +char font_lengths[]={1,7,7,7,7,7,7,7,7,3,6,8,7,9,7,7,7,7,7,7,7,7,7,9,9,7,7,7,7,5,}; + diff -r 000000000000 -r acb5694e93d9 oldchsool/font.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/font.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,275 @@ +#!/opt/bin/perl5 +##!/usr/bin/perl + +sub encode_font() +{ + @lines=split("\n",$_[0]); + $widths=""; + $offsets=""; + $crroff=0; + for($i=0;$i<$#lines;$i+=8) + { + $byte=0; + $x=0; + do + { + $byte=0; + for($j=0;$j<8;$j++) + { + if(substr($lines[$i+$j],$x,1) eq 'a') { $byte |= (1<<$j); } + } + if($byte!=0) + { + printf("0x%x,",$byte); + $crroff++; + } + $x++; + } while($byte!=0); + $lengths.=sprintf("%d,",$x); + print "0x00,\n"; + } +} + +print "unsigned char font[]={\n"; +&encode_font(<pwplib_bufh-1) + hg=pwplib_bufh-1; + + memset(d,0x11,pwplib_bufw*(pwplib_bufh-hg)); + d+=pwplib_bufw*(pwplib_bufh-hg); + + for(y=0;y>4)*32*256); + {int x=pwplib_bufw; + for(;x;x--)*d++=texture1[((ofz+=dofz)>>8)&1023];} + k-=(k>>3); + } +} diff -r 000000000000 -r acb5694e93d9 oldchsool/main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/main.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,463 @@ +#if 0 +# include +# include +# include +# include +#endif + +#include "pwplib.h" + +#define MAX(a,b) ((a)<(b)?(b):(a)) +#define MIN(a,b) ((a)>(b)?(b):(a)) + +struct +{ + int dsgtime; + + int flagz; + int planemode; + + int enctime,enckode,enczoom,encspeed; + + int endfxt; + + int metsaemode; + int bouncemode; +}demovar; + +#define Z 128 +#define z 128 +#define K 19 + +u8 pwplogofield[16*16] = { +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +3,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +3,3,3,3,11,3,z,0,z,3,3,11,11,11,3,3, +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +2,2,2,2,z,2,z,z,z,2,z,2,2,11,2,z, +2,z,z,2,z,2,z,2,z,2,z,2,z,z,2,z, +2,z,z,2,z,2,z,2,z,2,z,2,z,z,2,z, +2,2,2,2,z,2,z,2,z,2,z,2,2,2,2,z, +2,z,z,z,11,2,0,2,0,2,z,2,z,z,z,z, +2,z,z,z,z,2,2,2,2,2,z,2,z,z,z,z, +z,1,z,z,1,z,1,z,z,z,1,z,z,1,1,z, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +3,z,z,z,z,z,z,z,z,z,z,z,z,z,z,3, +3,z,z,z,z,z,3,1,3,1,z,1,1,z,z,3, +3,z,1,z,z,z,3,1,3,z,z,z,z,z,z,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 +}; + +u8 pwpendfield[16*16] = { +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +z,z,z,z,z,3,z,z,z,3,z,z,z,z,z,z, +z,z,z,z,1,3,z,z,z,3,z,z,z,z,z,z, +z,z,z,z,z,3,z,z,z,3,z,z,z,z,z,z, +z,3,3,3,z,3,z,3,z,3,z,3,3,3,z,z, +z,3,z,3,z,3,z,3,1,3,z,3,z,3,z,z, +z,3,3,3,z,3,1,3,z,3,1,3,3,3,z,z, +z,3,z,z,1,3,3,3,3,3,z,3,z,z,z,z, +z,3,z,z,z,z,z,z,z,z,1,3,z,z,z,z, +z,3,1,z,z,z,z,z,z,z,z,3,z,z,z,z, +z,3,z,z,z,z,z,z,z,z,z,3,z,z,z,z, +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, +z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z +}; + +u8 bartyblasefield[16*16] = { +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,z, +3,1,1,z,z,z,z,z,z,z,z,z,z,z,z,3, +3,z,z,1,z,z,z,z,z,z,z,z,z,z,z,3, +3,z,z,z,z,z,z,1,z,1,z,1,z,1,z,3, +3,1,K,z,K,z,K,z,K,z,K,z,K,z,z,3, +3,z,2,1,2,z,2,z,2,z,2,z,2,1,z,3, +3,z,2,z,2,z,2,1,2,1,2,1,2,z,z,3, +3,1,K,z,K,z,K,z,K,z,K,z,K,z,z,3, +3,z,2,z,2,z,2,1,2,z,2,z,2,z,z,z, +3,1,2,1,2,z,2,z,2,1,2,z,2,z,z,3, +3,z,K,1,K,z,K,z,K,z,K,1,K,1,z,3, +3,z,2,z,2,z,2,1,2,z,2,z,2,1,z,3, +3,z,2,1,2,z,2,z,2,1,2,z,2,z,z,3, +3,z,K,z,K,z,K,z,K,z,K,z,K,1,z,3, +3,z,1,1,z,1,z,z,1,z,1,z,z,z,z,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,z,3,3, +}; + + +u8 bdashfield[16*16]; + +/* +u8 bdashfield[16*16] = { +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, +2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, +2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, +2,Z,Z,Z,2,2,2,2,2,2,2,2,Z,Z,Z,2, +2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, +2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, +2,Z,Z,Z,Z,Z,0,Z,3,Z,Z,Z,Z,Z,Z,2, +2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, +2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, +2,Z,Z,Z,2,2,2,2,2,2,2,2,Z,Z,Z,2, +2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, +2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, +2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 +}; +*/ +#undef Z + +void rundemo() +{ + int quit=0,clrfx=0,fx=0,subfx=0; + + pwplib_startup(); + + decompress_allbmp(); + bwpals(); + + pwplib_buf= + malloc(sizeof(u8)*pwplib_bufw*pwplib_bufh); + + if(!pwplib_setup(NOSOUND)) + initplayer(); + + pwplib_prep_attr(); + + demovar.flagz=8|16; + + {demovar.dsgtime=0; + demovar.endfxt=1<<30; + demovar.metsaemode=0; + while(!quit) + { + int t=pwplib_timer(); + + while(demovar.dsgtime<=t) + { + if(0==(demovar.dsgtime&15)) + { simulate_bdash(bdashfield); } + + switch((int)demovar.dsgtime) + { + case(0): fx=8; subfx=0; memcpy(bdashfield,pwplogofield,256*sizeof(u8)); break; + + case(384): newtext(384,"OLDCHSOOL",0xff); break; + + case(256): fx=8; break; + + case(512-64): clrfx=1; subfx=fx=0; break; + case(512-48): subfx++; break; + case(512-16): subfx++; break; + case(512-8): subfx++; break; + + case(512): fx=0;clrfx=5;subfx=0+16; + newtext(512,"OLDCHSOOL\nTARKOTTAA",0xff);break; + + case(512+128): + newtext(512+128,"SEMMOSTA\n TYYPPII\nJOKA OLI",0xff);break; + + case(512+256):newtext(512+256,"EKALLA\nASSENPLY\nMESSULLA",0xff);break; + + case(512+384): newtext(512+384,"JO ENNEN\n VUOTTA\n ZOOO",0xff); break; + + case(512+512):newtext(512+512,"OLDCHSOOL\n HEMMOT\n ON",0xff); break; + + case(1024+128): newtext(1024+128," HIRVE[N\nISOJA JA\n RUMIA",0xff); fx|=2; break; + + case(1024+256): newtext(1024+256,"NIILL[ ON\n TYTT\\\n YST[V[",0xff); break; + + /* case(1024+384-8): fadeoldsk(1024+384-32); break; + */ + case(1024+384): + newtext(1024+384,"JA NE ON\n AMATTI\n KOLUSSA",0xff); break; + + case(1024+512): fx=2; subfx=17; clrfx=0; break; + + case(1024+512+128+64): fx=8|2;subfx=1; + memcpy(bdashfield,bartyblasefield,256*sizeof(u8)); + break; + + case(1024+512+256+64): fx=4|8;break; + + case(2048-128): fx=5; break; + + case(2048): newtext(2048,"OLDCHSOOL\nHEMMOILLA\n ON",0xff);break; + + case(2048+128): newtext(2048+128,"GOMONDORE\n NIMINEN\n TIETSKA",0xff);break; + + case(2048+256): newtext(2048+256,"SILL[ EI\nVOI EES\n PELATA",0xff);break; + + case(2048+384): newtext(2048+384,"MUUTA KU\n CUAKE\nYKK\\ST[",0xff);break; + + case(2048+512): newtext(2048+512,"OLDCHSOOL\nHEMMOILLE\n ON",0xff);fx=1;break; + + case(2048+512+128): + newtext (2048+512+128, "ASEMPLY\nMESSUILLA\nOMA ALUE", 0xff); + break; + + case(2048+512+256): newtext(2048+512+256,"JOSSA NE\nPIIKITT[[\nCANABISTA",0xff);fx=0;break; + + case(2048+512+384-16): fadeoldsk(2048+512+384-16); break; + + case(2048+512+384): newtext(2048+512+384,"JA PELAA\n CUACE\n YKK\\ST[",0xff);break; + + case(2048+1024): fx=8;subfx=2; break; + + case(2048+1024+139): + case(2048+1024+128): + case(2048+1024+80): + case(2048+1024+109): + case(2048+1024+137): + case(2048+1024+112): + case(2048+1024+99): + case(2048+1024+140): + case(2048+1024+200): + case(2048+1024+220): + case(2048+1024+190): + bdashfield[16+11]=11; + bdashfield[16+5]=11; + bdashfield[16+9]=11; + bdashfield[16+7]=11; + bdashfield[64+11]=11; + bdashfield[32+5]=11; + bdashfield[96+9]=11; + bdashfield[64+7]=11; break; + + case(2048+1024+512-64): fx=10; break; + + case(2048+1024+512): + fx=2; + newtext(2048+1024+512,"M[ HALUUN\n OLLA\nOLDCHSOOL",0xff); + break; +/* + case(2048+1024+512+128): + newtext(2048+1024+512+128,"MUN [ITIKI\nHALUU JA\n KOIRA",0xff); + break; +*/ + case(2048+1024+512+256): + newtext(2048+1024+512+256,"OLDCHSOOL\nON SUURI\nPELASTUS",0xff); + break; + + case(2048+1024+512+384): + newtext(2048+1024+512+384,"JA AVAIN\nIKUISEEN\nEL[M[[N",0xff);break; + + case(2048+2048):fx=0;break; + + case(2048+2048+128):memcpy(bdashfield,pwpendfield,sizeof(u8)*256); + fx=8;subfx=3;break; + + case(2048+2048+256): + newtext(2048+2048+256," PWP\n STILL\nOVERRULES",0xff);break; + case(2048+2048+512): + newtext(2048+2048+512," DESIGN\nCODE ETC\nBY VIZNUT",0xff);break; + case(2048+2048+768): + newtext(2048+2048+768,"GREETZ TO\nALL THE\nELITEZ",0xff);break; + case(2048+2048+1024): + newtext(2048+2048+1024," PWP\nPRODUCTION\n ZOOI",0xff);break; + + case(2048+2048+1024-64): + {int i=80;for(;i;i--){bdashfield[rand()&255]=11; + bdashfield[rand()&255]=1;}}break; + + + case(2048+2048+1024+256):quit=1;fx=0;break; +/* + + ----- + + OLDCHSOOL + HEMMOILLA + ON + + GOMONDORE + NIMINEN + TIETSKA + + SILLÄ EI + VOI EES + PELATA + + MUUTA KU + CUAKE + YKKÖSTÄ + + -- + + OLDCHSOOL + HEMMOILLE + ON + + ASSEMPLY + MESSUILLA + OMA ALUE + + JOSSA NE + PIIKITTÄÄ + CANABISTA + + JA PELAA + CUAKE + YKKÖSTÄ + + ------ + + KAIKKI + OLDCHSOOL + TYYPIT + + KUULUU + RIKOLLIS + JENGIIN + + JOSSA NE + SYÖ + VAUVOJA + + JA + PIIKITTÄÄ + CANABISTA + + -- + + MINÄKIN + HALUAN + ISONA + + KOVAX + OLDCHSOOL + JÄBÄX + + + + + ... + + ------ + + + +*/ + + } + demovar.dsgtime++; + } + + /* clrscr */ + + if(clrfx==1) + { + int fg=0x11,bord=0x99; + + int y0=pwplib_bufh/8,y1=pwplib_bufh-y0, + xmar=pwplib_bufw/8; + + if(subfx>0) bord=rand()&255; + + if(subfx>1) fg=bord; + + if(subfx>2) fg=bord=0x77; + + memset(pwplib_buf,bord,pwplib_bufw*pwplib_bufh*sizeof(u8)); + + for(;y0>4); + else + if(subfx==1) + bdash_do(bdashfield,8*256,8*256,384,t>>4); + else + if(subfx==2) + bdash_do(bdashfield,8*256,8*256,640,t>>4); + else + bdash_do(bdashfield,abs(8*256-((16*256-1)&(t<<4)))+102*8,8*256,640,t>>4); + } + +/* 768 */ + + if(fx&4) pelubounce0(t); + if(fx&2) oldskzooms(t); + + zoomer_do(t); + + /* addtext(64+((t>>1)&63)); */ /* +(t&127)); */ + + /***********************/ + + pwplib_dump_rast(); + if(!quit)pwplib_loopflush(); + } + } + + pwplib_shutdown(); +} + +int main(int argc,char**argv) +{ + if(!pwplib_init(argc,argv))return 1; + + initzoomers(); + + rundemo(); + + pwplib_shutdown(); + + return 0; +} diff -r 000000000000 -r acb5694e93d9 oldchsool/musa.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/musa.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,132 @@ +#define pwplib_volume 64 + +#ifndef STANDALONE + +#include "pwpdemo.h" + +#endif + +struct +{ + unsigned char*code,*codeptr; + int tonextcmd; + + unsigned char seq[3][64]; + int seqptr[3],seqlgt[3]; + unsigned char seqbase[3]; + unsigned char notes[16]; + + int tick,tempo; +}player; + +static char musicode[] = +{ +#include "musa.h" +}; + +void newnote() +{ + player.tonextcmd--; + + while(player.tonextcmd<=0) + { + unsigned int cmd=*player.codeptr++; + +#ifdef STANDALONE + printf("command %d\n",cmd); +#endif + + if(cmd<4) /* SEQn,howmany,noteindices */ + { + int i=0,lgt; + player.seqptr[cmd]=0; + player.seqlgt[cmd]=lgt=(unsigned char)*player.codeptr++; + + for(;i=128) note=noteidx; else + note=player.notes[noteidx]-5+player.seqbase[c]; +/* + printf("%d %d/%d\n",note,player.seqptr[c],player.seqlgt[c]); +*/ + player.seqptr[c]++; + if(player.seqptr[c]>=player.seqlgt[c]) player.seqptr[c]=0; + + if(note<128) note+=player.seqbase[c]; + + if(note==254) + pwplib_sound_nv(c,0,0); + else + if(note!=255) + pwplib_sound_nv(c,note<<8,pwplib_volume); + } + } +#ifdef STANDALONE + printf("\n"); +#endif +} + +void playtick() +{ + if(player.tick==0) + newnote(); + + player.tick++; + if(player.tick==player.tempo) + player.tick=0; +} + +void initplayer() +{ + player.tonextcmd=0; + player.code=player.codeptr=musicode; + + player.tick=0; + player.tempo=4; +#ifndef STANDALONE + pwplib_setplayer(playtick); +#endif +} + +#ifdef STANDALONE + +pwplib_sound_nv(int c,int n,int v) +{ + printf("%d %d |",c,n>>8,v); +} + +main() +{ + initplayer(); + for(;;) playtick(); +} + +#endif diff -r 000000000000 -r acb5694e93d9 oldchsool/musa.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/musa.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,186 @@ +7,36,24,12, +0,1,254, +2,32,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,1,255,255,254,0,255,255,254, +1,32,0,254,1,254,2,254,0,254,0,254,1,254,2,254,0,254,3,0,3,1,3,0,3,2,3,0,1,2,3,0,3,2, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +0,16,3,254,0,254,3,254,0,254,3,0,3,1,3,0,3,1, +6,16, +0,128,3,254,0,254,1,254,2,254,3,254,254,254,0,254,254,254,3,254,0,254,1,254,2,254,3,254,2,254,3,254,2,254,3,254,0,254,1,254,2,254,3,254,254,254,0,254,3,254,2,254,254,254,3,254,254,254,1,254,2,254,3,254,0,254,3,254,0,254,1,254,2,254,3,254,254,254,0,254,254,254,3,254,0,254,1,254,2,254,3,254,2,254,3,254,2,254,3,254,0,254,1,254,2,254,3,254,0,254,1,254,2,254,3,254,0,254,3,254,1,254,0,254,254,254,3,255,255,2, +1,32,0,254,1,254,2,254,0,254,0,254,1,254,2,254,0,254,2,0,1,0,2,0,1,0,3,0,1,2,3,0,3,2, +2,32,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,1,255,255,254,0,255,255,254, +7,36,24,12, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +7,41,29,17, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +0,1,254, +7,36,24,12, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +0,16,3,254,0,254,3,254,0,254,3,0,3,1,3,0,3,1, +6,16, +0,128,3,254,0,254,1,254,2,254,3,254,3,254,0,254,254,254,3,254,254,254,1,254,254,254,3,254,2,254,3,254,2,254,3,254,0,254,1,254,2,254,3,254,3,254,0,254,1,254,2,254,254,254,3,254,254,254,1,254,2,254,3,254,0,254,3,254,0,254,1,254,2,254,3,254,3,254,0,254,254,254,3,254,254,254,1,254,2,254,3,254,2,254,3,254,2,254,3,254,0,254,1,254,2,254,3,254,3,254,0,254,1,254,3,254,254,254,3,254,1,254,0,254,254,254,3,255,255,2, +2,32,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,1,255,255,254,0,255,255,254, +1,32,0,254,1,254,2,254,0,254,0,254,1,254,2,254,0,254,3,0,3,1,3,0,3,2,3,0,1,2,3,0,3,2, +7,36,24,12, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +7,41,29,17, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +0,1,254, +7,36,24,12, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +0,16,3,254,0,254,3,254,0,254,3,0,3,1,3,0,3,1, +6,16, +0,128,3,254,0,254,1,254,2,254,3,254,3,254,0,254,254,254,3,254,254,254,1,254,254,254,3,254,2,254,3,254,2,254,3,254,0,254,1,254,2,254,3,254,3,254,0,254,1,254,2,254,254,254,3,254,254,254,1,254,2,254,3,254,0,254,3,254,0,254,1,254,2,254,3,254,3,254,0,254,254,254,3,254,254,254,1,254,2,254,3,254,2,254,3,254,2,254,3,254,0,254,1,254,2,254,3,254,3,254,0,254,1,254,3,254,254,254,3,254,1,254,0,254,254,254,3,255,255,2, +2,32,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,0,254,0,254,0,255,255,254,1,255,255,254,0,255,255,254, +1,32,0,254,1,254,2,254,0,254,0,254,1,254,2,254,0,254,3,0,3,1,3,0,3,2,3,0,1,2,3,0,3,2, +7,36,24,12, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +7,39,27,15, +4,4,0,3,7,12, +6,16, +4,4,3,7,10,15, +6,16, +4,4,2,5,9,14, +6,16, +4,4,0,3,7,12, +6,16, +0,1,254, +1,1,254, +2,1,254, +6,64, +0,64,0,254,0,254,0,254,0,254,1,254,2,254,3,254,2,254,0,254,0,254,0,254,0,254,2,254,254,254,0,254,254,254,1,254,1,254,1,254,1,254,0,254,3,254,2,254,3,254,1,254,1,254,1,254,1,254,0,254,254,254,1,254,0,254, +1,32,0,254,1,254,2,254,3,254,2,254,1,254,0,254,1,254,2,254,3,254,2,254,1,254,0,254,1,254,2,254,3,254, +2,32,0,255,255,254,0,255,255,254,0,255,255,254,1,255,255,254,0,255,255,254,0,255,255,254,0,255,255,254,2,255,255,254, +7,36,24,12, +4,4,0,3,7,12, +6,48, +4,4,3,7,10,15, +6,16, +4,4,0,3,7,12, +6,48, +4,4,3,7,10,15, +6,16, +7,39,27,15, +4,4,0,3,7,12, +6,48, +4,4,3,7,10,15, +6,16, +0,64,0,254,0,254,0,254,0,254,1,254,2,254,3,254,2,254,0,254,0,254,0,254,0,254,2,254,254,254,0,254,254,254,1,254,1,254,1,254,1,254,0,254,3,254,2,254,3,254,1,254,1,254,1,254,1,254,0,254,3,254,2,254,0,254, +4,4,0,3,7,12, +6,48, +4,4,3,7,10,15, +6,10, +1,1,254, +2,1,254, +6,6, +0,1,254, +6,128, +5 diff -r 000000000000 -r acb5694e93d9 oldchsool/musa.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/musa.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,384 @@ +#!/usr/bin/perl +##!/opt/bin/perl5 + +sub End +{ + print "5\n"; +} + +sub Wait +{ + my($howlong)=@_; + print "6,$howlong,\n"; +} + +sub Seq +{ + my($seqno,$seqdata)=@_; + my($seqstr)=''; + my($lgt)=0; + + foreach(split('',$seqdata)) + { + if($_ eq ',') { $seqstr.='255,'; } + elsif($_ eq '.') { $seqstr.='254,'; } + else { $seqstr.=$_.','; } + $lgt++; + } + + print $seqno.','.$lgt.','.$seqstr."\n"; +} + +sub Notes +{ + print '4,'.($#_+1),','; + + foreach(@_) { print $_,','; } + print "\n"; +} + +sub Bases +{ + print '7,'; + for($i=0;$i<3;$i++) { print $_[$i],','; } + print "\n"; +} + +# 1 3 6 8 10 +# c d e f g a b c +# 0 2 4 5 7 9 11 12 + +Bases(36,24,12); + +Seq(0,'.'); +#Seq(1, '0.1.2.0.0.1.2.0.3.3.3.3.30313032'); +Seq(2, '0.0.0,,.0.0.0,,.0.0.0,,.1,,.0,,.'); +Seq (1, '0.1.2.0.0.1.2.0.3031303230123032'); +#Seq(1, '0.1.2.0.0.1.2.0.2010201030123032'); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Seq(0,'3.0.3.0.30313031'); +Wait(16); + +######### + +Seq(0, '3.0.1.2.3...0...3.0.1.2.3.2.3.2.'. + '3.0.1.2.3...0.3.2...3...1.2.3.0.'. + '3.0.1.2.3...0...3.0.1.2.3.2.3.2.'. + '3.0.1.2.3.0.1.2.3.0.3.1.0...3,,2' +); + +#Seq(0, '3.0.1.0.3.0.1.2.3.0.1.2.3...1...'); +#Seq(0 , '0.0.1.0.2,..3...0,,,1.2.1.2.3.0,'); +#Seq(0, '3.0.1.2.3.0.1.2.3.0.2.0.1.0.1.2.'); +#Seq(0, '0.0.1.2.0.2.1.2.0.2.1.2.0.2.1.2.'); +#Seq(0, '0.0.2.0.1.2.0.2.0.0.2.0.1.2.1.2.'); +Seq(1, '0.1.2.0.0.1.2.0.2010201030123032'); +#'0.0.0.0.1.2.1.2.'); +Seq(2, '0.0.0,,.0.0.0,,.0.0.0,,.1,,.0,,.'); + + +#Seq(0, '3.0.1.2.3...0...3.0.1.2.3.2.3.2.'. +# '3.0.1.2.3...0.3.2...3...1.2.3.0.'. +# '3.0.1.2.3...0...3.0.1.2.3.2.3.2.'. +# '3.0.1.2.3.0.1.2.3.0.3.1.0...3,,2' +#); +#Seq(1, '0.1.2.0.0.1.2.0.2010201030123032'); + +#Seq(0, '3.0.1.0.3.0.1.2.3.0.1.2.3...1...'); +#Seq(0 , '0.0.1.0.2,..3...0,,,1.2.1.2.3.0,'); +#Seq(0, '3.0.1.2.3.0.1.2.3.0.2.0.1.0.1.2.'); +#Seq(0, '0.0.1.2.0.2.1.2.0.2.1.2.0.2.1.2.'); +#Seq(0, '0.0.2.0.1.2.0.2.0.0.2.0.1.2.1.2.'); +#'0.0.0.0.1.2.1.2.'); + +Bases(36,24,12); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Bases(36+5,24+5,12+5); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + + +############## + +Seq(0,'.'); + +Bases(36,24,12); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Seq(0,'3.0.3.0.30313031'); +Wait(16); + +############## + +#Seq(0, '3.0.1.0.3.0.1.2.3.0.1.2.3...1...'); + +#Seq(0 , '0.0.1.0.2,..3...0,,,1.2.1.2.3.0,'. +# '0.0.1.0.2,..3...0,,,1.2.1.2.3.0,'. +# '0.0.1.0.2,..3...0,,,1.2.1.3.0.3,'. +# '0.0.1.0.2,,.3...0,,,1.2.0.123231'); + +Seq(0, '3.0.1.2.3.3.0...3...1...3.2.3.2.'. + '3.0.1.2.3.3.0.1.2...3...1.2.3.0.'. + '3.0.1.2.3.3.0...3...1.2.3.2.3.2.'. + '3.0.1.2.3.3.0.1.3...3.1.0...3,,2' +); +#Seq(2, '0,,.0,,.0,,.0.0.0,,.0,,.0,,.1.2.'); +# +Seq(2, '0.0.0,,.0.0.0,,.0.0.0,,.1,,.0,,.'); +#Seq(1, '0...0.2.0...0.1.0.2.0.1.0.2.0.1.'. +# '0...0.2.0...0.1.0.2.0.1.0...3.3.'); +Seq (1, '0.1.2.0.0.1.2.0.3031303230123032'); + +#Seq(0, '3.0.1.2.3.0.1.2.3.0.2.0.1.0.1.2.'); +#Seq(0, '0.0.1.2.0.2.1.2.0.2.1.2.0.2.1.2.'); +#Seq(0, '0.0.2.0.1.2.0.2.0.0.2.0.1.2.1.2.'); + +Bases(36,24,12); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + + +Bases(36+5,24+5,12+5); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Seq(0,'.'); + +Bases(36,24,12); + + + + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Seq(0,'3.0.3.0.30313031'); +Wait(16); + + +############## + +#Seq(0, '3.0.1.0.3.0.1.2.3.0.1.2.3...1...'); + +#Seq(0 , '0.0.1.0.2,..3...0,,,1.2.1.2.3.0,'. +# '0.0.1.0.2,..3...0,,,1.2.1.2.3.0,'. +# '0.0.1.0.2,..3...0,,,1.2.1.3.0.3,'. +# '0.0.1.0.2,,.3...0,,,1.2.0.123231'); + +Seq(0, '3.0.1.2.3.3.0...3...1...3.2.3.2.'. + '3.0.1.2.3.3.0.1.2...3...1.2.3.0.'. + '3.0.1.2.3.3.0...3...1.2.3.2.3.2.'. + '3.0.1.2.3.3.0.1.3...3.1.0...3,,2' +); +#Seq(2, '0,,.0,,.0,,.0.0.0,,.0,,.0,,.1.2.'); +# +Seq(2, '0.0.0,,.0.0.0,,.0.0.0,,.1,,.0,,.'); +#Seq(1, '0...0.2.0...0.1.0.2.0.1.0.2.0.1.'. +# '0...0.2.0...0.1.0.2.0.1.0...3.3.'); +Seq (1, '0.1.2.0.0.1.2.0.3031303230123032'); + +#Seq(0, '3.0.1.2.3.0.1.2.3.0.2.0.1.0.1.2.'); +#Seq(0, '0.0.1.2.0.2.1.2.0.2.1.2.0.2.1.2.'); +#Seq(0, '0.0.2.0.1.2.0.2.0.0.2.0.1.2.1.2.'); + +Bases(36,24,12); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +Bases(36+3,24+3,12+3); + +Notes(0,3,7,12); +Wait(16); +Notes(3,7,10,12+3); +Wait(16); +Notes(2,5,9,14); +Wait(16); +Notes(0,3,7,12); +Wait(16); + +#Notes(0,3,7,12); +#Wait(16); +#Notes(3,7,10,12+3); +#Wait(16); +#Notes(2,5,9,14); +#Wait(16); +#Notes(0,3,7,12); +#Wait(16); +# +#Notes(0,3,7,12); +#Wait(16); +#Notes(3,7,10,12+3); +#Wait(16); +#Notes(2,5,9,14); +#Wait(16); +#Notes(0,3,7,12); +#Wait(16); + +########################### + +Seq(0,'.'); +Seq(1,'.'); +Seq(2,'.'); +Wait(64); + +##### + +Seq(0,'0.0.0.0.1.2.3.2.0.0.0.0.2...0...'. + '1.1.1.1.0.3.2.3.1.1.1.1.0...1.0.'); +Seq(1,'0.1.2.3.2.1.0.1.2.3.2.1.0.1.2.3.'); +Seq(2,'0,,.0,,.0,,.1,,.0,,.0,,.0,,.2,,.'); + +Bases(36,24,12); + +Notes(0,3,7,12); +Wait(48); +Notes(3,7,10,12+3); +Wait(16); + +Notes(0,3,7,12); +Wait(48); +Notes(3,7,10,12+3); +Wait(16); + +Bases(36+3,24+3,12+3); + +Notes(0,3,7,12); +Wait(48); +Notes(3,7,10,12+3); +Wait(16); + +Seq(0,'0.0.0.0.1.2.3.2.0.0.0.0.2...0...'. + '1.1.1.1.0.3.2.3.1.1.1.1.0.3.2.0.'); + +Notes(0,3,7,12); +Wait(48); +Notes(3,7,10,12+3); +Wait(10); + +#Seq(0,'.'); +Seq(1,'.'); +Seq(2,'.'); + +Wait(6); +Seq(0,'.'); + +Wait(128); + +End; diff -r 000000000000 -r acb5694e93d9 oldchsool/pics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/pics.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,41 @@ +u8*pwp_sf_pict,pwp_sf_mask; +u8 pwp_sf_cmpr[]={ +0xe5,0x00,0xff,0xeb,0xff,0x00,0x9,0x2d,0x7,0x22,0xb,0x22,0x5,0x22,0xd,0x22,0x3,0x22, +0x1,0x23,0x1,0x21,0x3,0x21,0x1,0x23,0x1,0x22,0x1,0x22,0x2,0x21, +0x1,0x21,0x1,0x21,0x3,0x21,0x1,0x21,0x1,0x21,0x2,0x24,0x2,0x21, +0x1,0x21,0x1,0x21,0x3,0x21,0x1,0x21,0x1,0x21,0x2,0x24,0x2,0x21, +0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x2,0x24, +0x2,0x23,0x1,0x21,0x1,0x21,0x1,0x21,0x1,0x23,0x2,0x24,0x2,0x21, +0x3,0x21,0x1,0x21,0x1,0x21,0x1,0x21,0x4,0x24,0x2,0x21,0x3,0x21, +0x1,0x21,0x1,0x21,0x1,0x21,0x4,0x24,0x2,0x21,0x3,0x21,0x1,0x21, +0x1,0x21,0x1,0x21,0x4,0x22,0x1,0x22,0x1,0x21,0x3,0x25,0x1,0x21, +0x3,0x22,0x3,0x22,0xd,0x22,0x5,0x22,0xb,0x22,0x7,0x2d,0x9,0x2b, +0x5,} +sprite pwp_sf ={ 21,17,NULL,pwp_sf_cmpr}; + +u8*esittaa_pict,esittaa_mask; +u8 esittaa_cmpr[]={ +0xf8,0x00,0xff,0xe1,0x =00ff,0x,0x2,0x21,0x2,0x21,0x2,0x21,0x12,0x21,0x3,0x21,0x10, +0x23,0x3,0xe3,,0x3,0x41,0x1,0x23,0x1,0x23,0x2,0x24,0x2,0x24,0x2, +0x21,0x3,0x21,0x1,0x41,0x9,0x21,0x3,0x21,0x2,0x21,0x3,0x21,0x1, +0x21,0x3,0x21,0x2,0x24,0x3,0x43,0x3,0x41,0x2,0x21,0x3,0x21,0x2, +0x21,0x3,0x21,0x1,0x21,0x3,0x21,0x2,0x21,0x9,0x41,0x2,0x41,0x2, +0x21,0x3,0x21,0x2,0x21,0x3,0x21,0x1,0x21,0x3,0x21,0x3,0x23,0x1, +0x45,0x2,0x41,0x2,0x21,0x2,0x22,0x4,0x23,0x3,0x23,0x1,0x21,0x1, +} +sprite esittaa ={ 36,7,NULL,esittaa_cmpr}; + +u8*forevisar_pict,forevisar_mask; +u8 forevisar_cmpr[]={ +0xe6,0x00,0xff,0xe1,0x =00ff,0x,0x2,0x21,0x1f,0x1f,0x17,0x22,0x2,0x22,0x2,0x21,0x1,0x22, +0x2,0x22,0x2,0x21,0x2,0x21,0x2,0x21,0x2,0x23,0x3,0x24,0x2,0x21, +0x1,0x22,0x2,0x21,0x3,0x21,0x2,0x21,0x1,0x22,0x3,0x21,0x2,0x21, +0x1,0x21,0x2,0x21,0x4,0x21,0x5,0x21,0x3,0x21,0x2,0x22,0x4,0x21, +0x3,0x21,0x2,0x21,0x1,0x21,0x4,0x23,0x3,0x21,0x1,0x21,0x2,0x21, +0x2,0x23,0x2,0x21,0x3,0x21,0x2,0x21,0x3,0x25,0x1,0x21,0x2,0x21, +0x1,0x21,0x4,0x21,0x5,0x21,0x1,0x21,0x2,0x21,0x5,0x21,0x1,0x21, +0x3,0x21,0x2,0x21,0x5,0x21,0x4,0x22,0x2,0x21,0x5,0x24,0x2,0x22, +0x1,0x21,0x2,0x24,0x3,0x23,0x2,0x21,0x6,0x21,0x1f,0xe,0x21,0x1f, +0xc,} +sprite forevisar ={ 46,9,NULL,forevisar_cmpr}; + diff -r 000000000000 -r acb5694e93d9 oldchsool/planes.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/planes.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,156 @@ +#define HAS_SINTAB +#include "pwpdemo.h" + +#ifdef USE_SINTAB +signed int sintab16[256]={ +0, 804, 1607, 2410, 3211, 4011, 4807, 5601, 6392, 7179, 7961, 8739, +9511, 10278, 11038, 11792, 12539, 13278, 14009, 14732, 15446, 16150, +16845, 17530, 18204, 18867, 19519, 20159, 20787, 21402, 22004, 22594, +23169, 23731, 24278, 24811, 25329, 25831, 26318, 26789, 27244, 27683, +28105, 28510, 28897, 29268, 29621, 29955, 30272, 30571, 30851, 31113, +31356, 31580, 31785, 31970, 32137, 32284, 32412, 32520, 32609, 32678, +32727, 32757, 32767, 32757, 32727, 32678, 32609, 32520, 32412, 32284, +32137, 31970, 31785, 31580, 31356, 31113, 30851, 30571, 30272, 29955, +29621, 29268, 28897, 28510, 28105, 27683, 27244, 26789, 26318, 25831, +25329, 24811, 24278, 23731, 23169, 22594, 22004, 21402, 20787, 20159, +19519, 18867, 18204, 17530, 16845, 16150, 15446, 14732, 14009, 13278, +12539, 11792, 11038, 10278, 9511, 8739, 7961, 7179, 6392, 5601, 4807, +4011, 3211, 2410, 1607, 804, 0, -805, -1608, -2411, -3212 ,-4012, -4808, +-5602, -6393, -7180, -7962, -8740, -9512, -10279, -11039, -11793, +-12540, -13279, -14010, -14733, -15447, -16151, -16846, -17531, -18205, +-18868, -19520, -20160, -20788, -21403, -22005, -22595, -23170, -23732, +-24279, -24812, -25330, -25832, -26319, -26790, -27245, -27684, -28106, +-28511, -28898, -29269, -29622, -29956, -30273, -30572, -30852, -31114, +-31357, -31581, -31786, -31971, -32138, -32285, -32413, -32521, -32610, +-32679, -32728, -32758, -32767, -32758, -32728, -32679, -32610, -32521, +-32413, -32285, -32138, -31971, -31786, -31581, -31357, -31114, -30852, +-30572, -30273, -29956, -29622, -29269, -28898, -28511, -28106, -27684, +-27245, -26790, -26319, -25832, -25330, -24812, -24279, -23732, -23170, +-22595, -22005, -21403, -20788, -20160, -19520, -18868, -18205, -17531, +-16846, -16151, -15447, -14733, -14010, -13279, -12540, -11793, -11039, +-10279, -9512, -8740, -7962, -7180, -6393, -5602, -4808, -4012, -3212, +-2411, -1608, -805 }; +#endif + +u8 psychtab0[64]= +{ + 0x00,0x00,0x01,0x01,0x10,0x10,0x11,0x11,0x13,0x13,0x31,0x31,0x33,0x33, + 0x3b,0x3b,0xb3,0xbb,0xbf,0xfb,0xff,0xfb,0xbb,0xb3,0x3b,0x33,0x31,0x13, + 0x11,0x10,0x01,0x00,0x00,0x01,0x01,0x10,0x10,0x11,0x11,0x19,0x19,0x91, + 0x91,0x91,0x99,0x99,0x99,0x99,0x91,0x91,0x91,0x19,0x19,0x11,0x11,0x10, + 0x10,0x01,0x01,0x00,0x00,0x00,0x01 +}; + +/* +u8 psychtab0[64]= +{ + 0x00,0x00,0x00,0x04,0x04,0x40,0x40,0x44,0x44,0x4c,0xc4,0xc4,0xcc,0xcc, + 0xca,0xac,0xfa,0xef,0xec,0xce,0xcc,0xc4,0x4c,0x44,0x40,0x04,0x00,0x00, + 0x00,0x04,0x06,0x60,0x66,0x6e,0xe6,0xee,0xef,0xfe,0xaf,0xfa,0xaa,0xea, + 0xee,0xea,0xae,0xaa,0xa3,0x3a,0x33,0x32,0x23,0x22,0x20,0x02,0x08,0x00, + + 0x08,0x07,0x77,0x78,0x08,0x00,0x01 +}; +*/ + +u8 psychtab1[64]= +{ + 0x04,0x06,0x0e,0x6e,0xe6,0xee,0xe6,0x6e,0x60,0x06,0x00,0x01,0x10,0x15, + 0x51,0x55,0x5d,0xd5,0xdd,0xd5,0x5d,0x55,0x51,0x15,0x11,0x1e,0xe1,0xee, + 0xef,0xfe,0xff,0xfe,0xef,0xee,0xea,0xae,0xaa,0xa2,0x2a,0x20,0x02,0x00, + 0x00,0x02,0x20,0x22,0x2e,0xe2,0xee,0xea,0xaa,0xa2,0x2a,0x20,0x02,0x01, + 0x03,0x30,0x31,0x35,0x53,0x50,0x05 +}; + +u8 psychtab2[64]= +{ + 0x00,0x08,0x07,0x87,0x78,0x87,0x88,0x07,0x08,0x08,0x00,0x00,0x00,0x00, + 0x01,0x03,0x30,0x33,0x03,0x03,0x01,0x09,0x19,0x19,0x91,0x91,0x99,0x99, + 0x9c,0x99,0x91,0x19,0x1c,0x13,0x31,0x33,0x31,0x03,0x03,0x00,0x00,0x00, + 0x04,0x40,0x44,0x04,0x04,0x04,0x00,0x04,0x40,0x4e,0x40,0x04,0x00,0x04, + 0x05,0x05,0x04,0x04,0x00,0x00,0x00 +}; + +void planes_draw(u8*map,int angle,int midpt) +{ + register u8*d=pwplib_buf; + + register int x; + + register int du=(SIN(angle)*MIN(pwplib_bufw,pwplib_bufh))/4096; + + int dv=(COS(angle)*pwplib_bufh)/6666; + + register int i=midpt*256-(pwplib_bufh>>1)*dv + -(pwplib_bufw>>1)*du; + + int y=pwplib_bufh; + + dv-=du*pwplib_bufw; + + for(;y;y--) + { + for(x=pwplib_bufw;x;x--) + { + *d++=map[(i>>8)&255]; + i+=du; + } + i+=dv; + } +} + +void xorplanes_draw(u8*map,int angle,int angle2,int midpt,int midpt2) +{ + register u8*d=pwplib_buf; + + register int x; + + register int du=(SIN(angle)*MIN(pwplib_bufw,pwplib_bufh))/4096, + du2=(SIN(angle2)*MIN(pwplib_bufw,pwplib_bufh))/4096; + + int dv=(COS(angle)*pwplib_bufh)/6666, + dv2=(COS(angle2)*pwplib_bufh)/6666; + + register int i=midpt*256-(pwplib_bufh>>1)*dv + -(pwplib_bufw>>1)*du, + j=midpt2*256-(pwplib_bufh>>1)*dv2 + -(pwplib_bufw>>1)*du2; + + int y=pwplib_bufh; + + for(;y;y--) + { + int ii=i,jj=j; + for(x=pwplib_bufw;x;x--) + { + *d++=map[(ii>>8)&255]^map[(jj>>8)&255]; + ii+=du;jj+=du2; + } + i+=dv;j+=dv2; + } +} + + +void planes_do(int t,int m) +{ + u8*tabbu[3]={psychtab0,psychtab1,psychtab2}; + u8 map[256]; + u8*tabu=tabbu[m&15]; + + int step=1024,i,j=-t*80; + + for(i=0;i<128;i++) + { + map[i]=map[255-i]=tabu[(j>>8)&63]; + j+=step; + + step-=(step>>4); + } + + if(m&16) + planes_draw(map,t*3,SIN(t)/512);else + xorplanes_draw(map,t,t*3/11, + SIN(t)/512, + SIN(((long int)t*(608/16))/(1024*16)) ); +} + diff -r 000000000000 -r acb5694e93d9 oldchsool/pwpdemo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/pwpdemo.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,17 @@ +#include "pwplib.h" +#define USE_SINTAB + +#define MAX(a,b) ((a)>(b)?(a):(b)) +#define MIN(a,b) ((a)<(b)?(a):(b)) + +#ifndef USE_SINTAB +#define SIN(a) (sin((a)*3.1415926/128)*32767) +#define COS(a) ((3.1415926/2)+(cos((a)*3.1415926/128))*32767) +#else +#ifndef HAS_SINTAB +extern signed int sintab16[]; +#endif +#define SIN(a) sintab16[(a)&255] +#define COS(a) sintab16[((a)+64)&255] +#endif + diff -r 000000000000 -r acb5694e93d9 oldchsool/spritegen.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/spritegen.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,23 @@ +&bitmap('pelu':'n:44:00/ :00:ff/@:7f:00/.:11:82/x:44:00/Z:e6:00/',< +#include + +#include "pwpdemo.h" + +typedef struct +{ + int width,height; + u8*pict; + u8*mask; +}sprite; + +#include "sprites.h" + +#include "font.h" + +#define INLINE + /* to pwplib.h -- #define INLINE inline */ + +INLINE void zoomsprite_loop + (mask, pict, xzoom, d, xo0, xdim, ydim, spwidth, yzoom, yo0, col) +register u8* mask, *pict; +register int xzoom, col; +u8* d; +int xo0, xdim, ydim, spwidth, yzoom, yo0; +{ + register u8 *dd, *m, *p; + register int xo, x; + + for(;ydim;ydim--) + { + int linebase = (yo0>>8) * spwidth; + + m = mask + linebase; + p = pict + linebase; + dd = d; + xo = xo0; + + for(x=xdim;x;x--) + { + register int z=xo>>8; + + *dd++ = (*dd & m[z]) | (p[z]&col); + + xo += xzoom; + } + + yo0 += yzoom; + d += pwplib_bufw; + } +} + +void zoomsprite(int x0,int y0,sprite*sp,int xzoom,int yzoom, int col) +{ + int xdim,ydim, + xo0=0,yo0=0,x,y,ptr; + + if(xzoom<=32 && yzoom<=32)return; + + xdim=(sp->width<<8)/xzoom; + ydim=(sp->height<<8)/yzoom; + + x0-=(xdim>>1); + y0-=(ydim>>1); + + if(x0<0) + { + xdim+=x0; + xo0=(0-x0)<<8; + x0=0; + } + + if(y0<0) + { + ydim+=y0; + yo0=(0-y0)<<8; + y0=0; + } + + if(x0+xdim>=pwplib_bufw) + { + xdim=pwplib_bufw-x0; + } + + if(y0+ydim>=pwplib_bufh) + { + ydim=pwplib_bufh-y0; + } + + if(xdim<=0 || ydim<=0) return; + + zoomsprite_loop + ( + sp->mask, sp->pict, xzoom, + pwplib_buf+x0+y0*pwplib_bufw, + xo0, xdim, ydim, sp->width, yzoom, yo0, col + ); +} +/* + (mask, pict, xzoom, d, xo0, xdim, ydim, spwidth, yzoom, yo0) +*/ + +void zoomsprite_gen(int x0,int y0,sprite*sp,int zoom,int col) +{ + zoomsprite(((x0+128)*pwplib_bufw)>>8, + ((y0+128)*pwplib_bufh)>>8, + sp, + abs((zoom<<8)/pwplib_bufw), + abs((zoom<<7)/pwplib_bufh), col + ); +} + +/* +void metsae(int t,int mode) +{ + int i,x; + + const sprite*mo[]={&kuusi}; + const int mosiz[]={128}; + const int mostep[]={64}; + + for(i=0;i<512;i+=mostep[mode]) + { + zoomsprite_gen( + ((i-t/3)&511)-256 ,0,mo[mode],mosiz[mode]); + } +} + +void drawkiller(int tminus) +{ + int ttt=tminus; + + if(tminus<-64)tminus=-64;else + if(tminus>0)tminus=0; + + zoomsprite_gen(tminus,48,(ttt&16)?&pelustna0:&pelustna1,80); +} + +void encounter(int tminus,int kode,int zoom,int speed) +{ + int ttt=tminus; + sprite*pum[][2]= + { + &krist0,&krist1, + &pelusieni,&pelusieni, + &pelusieni1,&pelusieni1, + &pelusieni2,&pelusieni2, + &pelux,&pelux, + &pelustna0,&pelustna1, + &ruumis,&ruumis, + &uusmed0,&uusmed1, + &tesno0,&tesno1, + &army0,&army0, + &windows0,&windows1, + &quake0,&quake0 + }; + + if(ttt<0)ttt=0; + + zoomsprite_gen(0+ttt,48,(tminus&16)?pum[kode][0]:pum[kode][1],zoom); +} +*/ + + +/******************/ + +char scale[3][8]={ + 0x00,0x08,0x80,0x88,0x87,0x77,0xf7,0xff, + 0x00,0x08,0x07,0x80,0x88,0x87,0x77,0x7f, + 0x00,0x06,0x60,0x66,0x6e,0xe6,0xee,0xef +}; + +char bwpal[8][256]; +void bwpals() +{ + int i,j; + for(i=0;i<8;i++) + { + int gamma=rand()&3; + int brite=256+(rand()&15)-(rand()&15); + int scl=rand()%3; + + for(j=0;j<256;j++) + { + int it=((j&1)?1:0)+((j&2)?6:0)+((j&4)?3:0)+((j&8)?5:0)+ + ((j&16)?3:0)+((j&32)?12:0)+((j&64)?8:0)+((j&128)?8:0); + + it+=gamma; + it=(it*brite)>>8; + if(it>63)it=63; + + it/=8; + + bwpal[i][j]=scale[scl][it]; + } + } +} + +void naarmuta() +{ + int i=pwplib_bufh*pwplib_bufw; + static int ph=0,rr=0,nrmx=0; + + char*d=pwplib_buf; + char*lookup=&bwpal[rr&7][0]; + ph++;if(!(ph&3))rr=rand(); + + for(i=100;i;i--) + { + int z=rand()%(pwplib_bufw*pwplib_bufh); + pwplib_buf[z]^=0x87; + } + + for(i=0;i=pwplib_bufw) nrmx=rand()%pwplib_bufw; + } + + i=pwplib_bufh*pwplib_bufw; + for(;i;i--){*d=lookup[*d];d++;} +} + +#define NUMZOOMS 4 + +struct zoomer_t +{ + sprite*sprite; + + int starttime; + + int startzoom; + int zoomspeed; + + int fadespeed; + + int dynamic; +} +zoomer[NUMZOOMS]; + +void drawtext(sprite*textbuf,char*txt,int col); + +void initzoomers() +{ + int i=0; + for(;i=0;i--) + memcpy( + &zoomer[i+1], + &zoomer[i], + sizeof(struct zoomer_t)); + } + + zoomer[0].sprite=s; + zoomer[0].starttime=starttime; + zoomer[0].startzoom=startzoom; + zoomer[0].zoomspeed=zoomspeed; + zoomer[0].fadespeed=fadespeed; + zoomer[0].dynamic=dynamic; +} + +/* + 0x00 -> 0x01 -> 0x11 -> 0x13 -> 0x33 -> 0x37 -> 0x77 -> 0x7f -> 0xff +*/ + +void zoomer_free(int i) +{ + if(zoomer[i].dynamic) + { + free(zoomer[i].sprite->mask); + free(zoomer[i].sprite->pict); + free(zoomer[i].sprite); + } + zoomer[i].sprite=NULL; +} + +void zoomer_do(int t) +{ + int i=NUMZOOMS-1,col=0x00; + for(;i>=0;i--) if(zoomer[i].sprite!=NULL) + { + int killit=0; + int passed = t-zoomer[i].starttime, + zoomlevel = zoomer[i].startzoom+((zoomer[i].zoomspeed*passed)>>8), + fadelevel = ((zoomer[i].fadespeed*passed)>>8); + + { + static char orrers[] = { + 0x76,0xff,0xfe,0xea, + 0xae,0xac,0xaa,0xa9, + 0x9a,0x92,0x29,0x22, + 0x21,0x12,0x11,0x01 }; + + if(fadelevel>=20) { killit++; } else col=orrers[fadelevel]; + } + + if(zoomlevel<64)zoomlevel=64; + + if(killit || zoomlevel>512) + { + zoomer_free(i); + } + else + + zoomsprite_gen(0,0,zoomer[i].sprite,zoomlevel,col); + } +} + +/* +void addtext(int m) +{ + if(textbuf.width) + { + zoomsprite_gen(0,0,&textbuf,m); + } +} +*/ + +void pelubounce0(int t) +{ + sprite*c; + + {int u=(t>>3)&3; + if(u==0)c=&pelush0;else + if(u==1)c=&pelush1;else + if(u==2)c=&pelush2;else + c=&pelush1;} + + {int j=0; + for(;j<256;j+=32) + zoomsprite_gen(SIN(t+j)>>9,COS(t+j)>>9,c,112,0xff); + } +} + +void pelubounce1(int t) +{ + sprite*c; + + {int u=(t>>3)&3; + if(u==0)c=&pelush0;else + if(u==1)c=&pelush1;else + if(u==2)c=&pelush2;else + c=&pelush1;} + + {int axis0 = SIN(t/3),axis1=0; /* (48*COS(t/3))>>15; */ + int j=0; + for(;j<256;j+=32) + zoomsprite_gen(SIN(t+j)>>9,(axis0*(COS(t+j)>>9))>>15,c, + 112+((axis1*SIN(t/3+j))>>15),0xff); + } +} + +//zoomsprite(int x0,int y0,sprite*sp,int xzoom,int yzoom, int col) + +/*************************** boulderdash-related ***********************/ + +void bdash_do(u8*field,int xbase,int ybase,int zoom,int aniphase) +{ + static sprite*pix[][4] = + { + {&bdash0,&bdash1,&bdash2,&bdash1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&brick0,&brick0,&brick0,&brick0}, + {&brick1,&brick1,&brick1,&brick1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&pelush0,&pelush1,&pelush2,&pelush1}, + {&boulder,&boulder,&boulder,&boulder}, + {&boulder,&boulder,&boulder,&boulder}, + {&splat0,&splat0,&splat0,&splat0}, + {&splat1,&splat1,&splat1,&splat1}, + {&splat2,&splat2,&splat3,&splat3}, + {&splat4,&splat4,&splat4,&splat4}, + {&boulder,&boulder,&boulder,&boulder}, + {&bdash4,&bdash4,&bdash4,&bdash4}, + {&tietzka,&tietzka,&tietzka,&tietzka} + }; + + int x,y; + /* 256 == normal size (16 objs per width) */ + zoom = (zoom*pwplib.videobuf.width)>>8; + /* zoom == width of the whole stuph in pixels */ + + aniphase&=3; + + for(y=0;y<16;y++) + for(x=0;x<16;x++) + { + u8 f=*field++; + + if(f<128) { + + sprite*c=pix[f&31][aniphase]; + + zoomsprite(pwplib.videobuf.width/2 + ((x*zoom-((xbase*zoom)>>8))>>4), + pwplib.videobuf.height/2 + ((y*zoom-((ybase*zoom)>>8))>>4), + c,65536/zoom,65536/zoom,0xff); + + /* 256*256 / zoom -- */ +/* + size=16: zoom=256, väli=16 + + zoomsprite_gen(((x-xbase)*zoom)>>4,((y-ybase)*zoom)>>4,c, + (256*16*16)/zoom,0xff); +*/ + } + } +} + +enum { Rockford=0, PeluLeft=1,Brick0=2, Brick1=3, + PeluRight=4, PeluUp=5, PeluDown=6, + PeluLeftMoved=7, PeluRightMoved=8, PeluUpMoved=9, PeluDownMoved=10, + Boulder=11, BoulderFalls=12, + Splat0=13,Splat1=14,Splat2=15,Splat3=16, + BoulderMoved=17,RockfordStanding=18,Tietzka=19, + + Void=128 }; + +#define MoveShit(mover,aftermove,afterchk, thispt,movpt,chkpt) \ + if(s==(mover)) { \ + if((field[(chkpt)&255]<128) && (field[(movpt)&255]>=128)) { \ + field[(thispt)&255]=128; field[(movpt)&255]=(aftermove); } else \ + field[(thispt)&255]=(afterchk); } + +void simulate_bdash(u8*field) +{ + int x,y; + + /* field[rand()&255]=3; + */ + for(y=0;y<16;y++) + for(x=0;x<16;x++) + { + u8 s=field[y*16+x]; + MoveShit(PeluUp,PeluUpMoved,PeluRightMoved,y*16+x,y*16+x-16,y*16+x+1) + else + MoveShit(PeluDown,PeluDownMoved,PeluLeftMoved,y*16+x,y*16+x+16,y*16+x-1) + else + MoveShit(PeluRight,PeluRightMoved,PeluDownMoved,y*16+x,y*16+x+1,y*16+x+16) + else + MoveShit(PeluLeft,PeluLeftMoved,PeluUpMoved,y*16+x,y*16+x-1,y*16+x-16) + else + if(s==Boulder) + { + if(field[(y*16+x+16)&255]==128) field[y*16+x]=BoulderFalls; + } + else + if(s==BoulderFalls) + { + u8 below = field[(y*16+x+16)&255]; + + if(below==128) { field[y*16+x]=128;field[(y*16+x+16)&255]=BoulderMoved; } + else + if(below==PeluRight || below==PeluLeft || below==PeluUp || below==PeluDown || + below==PeluRightMoved || below==PeluLeftMoved || below==PeluUpMoved || below==PeluDownMoved) + { + int x1,y1; + for(y1=-1;y1<=1;y1++)for(x1=-1;x1<=1;x1++) + field[((y+y1)*16+x+x1)&255]=Splat0; + } + else + if((field[(y*16+x+16+1)&255]==128) && (field[(y*16+x+1)&255]==128)) + { field[y*16+x]=128;field[(y*16+x+1)&255]=Boulder; } + else + if((field[(y*16+x+16-1)&255]==128) && (field[(y*16+x-1)&255]==128)) + { field[y*16+x]=128;field[(y*16+x-1)&255]=Boulder; } + else field[y*16+x]=Boulder; + } + } + + for(y=0;y<16;y++) + for(x=0;x<16;x++) + { + u8*s=&field[y*16+x]; + if(*s==PeluUpMoved)*s=PeluUp;else + if(*s==PeluDownMoved)*s=PeluDown;else + if(*s==PeluRightMoved)*s=PeluRight;else + if(*s==PeluLeftMoved)*s=PeluLeft;else + if(*s==Splat0)*s=Splat1;else + if(*s==Splat1)*s=Splat2;else + if(*s==Splat2)*s=Splat3;else + if(*s==Splat3)*s=Void;else + if(*s==BoulderMoved)*s=BoulderFalls; + } +} + +/*************************************************************************/ + +void fadeoldsk(int t) +{ + alloczoomer(&oldsk,t,128,-128,24,0); +} + +void oldskzooms(int t) +{ + zoomsprite_gen(0,32+abs(127-((t<<1)&255))-64,&oldsk,48+abs(64-((t<<2)&127)),0xff); +} + +void newtext(int t,char*txt,int col) +{ + sprite*z = (sprite*)malloc(sizeof(sprite)); + drawtext(z,txt,col); + alloczoomer(z,t,48,128,24,1); +} + +void drawtext(sprite*textbuf,char*txt,int col) +{ + int wdt=0,x=0,y=0,idx,hgt=7; + unsigned char*f,*fnt=font; + + +/* killtext();*/ + {char*t=txt; + for(;;) + {int thiswdt=0; + while(*t && *t!='\n'){thiswdt+=font_lengths[(*t>='A'&&*t<=']')?(*t-'@'):4];t++;} + if(thiswdt>wdt)wdt=thiswdt; + if(!*t)break; else {t++;hgt+=11;} + }} + + textbuf->width=wdt+1; + textbuf->height=hgt+1; + { int sz=textbuf->height*textbuf->width*sizeof(u8); + textbuf->pict=malloc(sz); + textbuf->mask=malloc(sz); + memset(textbuf->pict,0,sz); + memset(textbuf->mask,0xff,sz);} + + + while(*txt) + { + int z=*txt,a; + + txt++; + + if(z=='\n'){x=0;y+=textbuf->width*11;continue;} + + z-='@'; + if(z<0 || z>29){x+=4;continue;} + + f=fnt; + while(z) + { + if(*f==0)z--; + f++; + } + + while((a=*f)) + { + idx=x+y; + + for(;a;a>>=1) + { + if(a&1){textbuf->pict[idx]=col; + textbuf->mask[idx]=0; + if(textbuf->mask[idx+1+textbuf->width]) + { + textbuf->pict[idx+textbuf->width+1]= + textbuf->mask[idx+textbuf->width+1]=0; + } + } + + idx+=textbuf->width; + } + x++; + f++; + } + x++; /* x+=2; */ + } +} + + +void rotozoompaski(u8*s,int u0,int v0,int du,int dv) +{ + u8*d=pwplib_buf; + int i,j,u,v; + int idu=du/pwplib_bufw,idv=dv/pwplib_bufw, + odu=dv/pwplib_bufh,odv=-du/pwplib_bufh; + + for(i=pwplib_bufh;i;i--) + { + int iu=u,iv=v; + for(j=pwplib_bufw;j;j--) + { + *d++=s[((iu>>4)&(1023&~31))|((iv>>9)&31)]; + iu+=idu;iv+=idv; + } + u+=idv;v+=-idu; + } +} + +/* +void rotozoom_do(int t,int m) +{ + u8*poo[]={piimae.pict,pelu.pict,taehti.pict}; + int u=SIN(t),v=COS(t); + rotozoompaski(poo[m],(-u+v)*32,(-v-u)*32,u,v); +} +*/ diff -r 000000000000 -r acb5694e93d9 oldchsool/sprites.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/sprites.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,194 @@ +u8*oldsk_pict,oldsk_mask; +u8 oldsk_cmpr[]={ +0xe8,0x00,0xff,0xe6,0x67,0x00,0xf,0xe3,0x78,0x00,0x26,0xd,0x44,0x26,0x41,0x21,0x7,0x21,0x2,0x41, +0x29,0x43,0x21,0x2,0x21,0x2,0x25,0xe6,0xff,0x00,0x31,0x61,0x24,0x61,0x21,0x66, +0x24,0x1,0x24,0x1,0x61,0x21,0x62,0x21,0x61,0x21,0x61,0x24,0x61,0x23, +0x3,0x22,0x2,0x61,0x24,0x61,0x21,0x61,0x21,0x62,0x21,0x61,0x22,0x8, +0x66,0x21,0x61,0x24,0x61,0xc,0x25,0x66,0xb,0x2a,0xc,0x43,0x21,0xe1, +0x88,0x00,0x21,0x81,0x22,0x43,0xb,0x4d,0xb,0x4a,0xe,0x49,0xe,0x48,0x10,0x42, +0x1,0x44,0x10,0x42,0x1,0x43,0x14,0x42,0x15,0x41,0xb,}; +sprite oldsk ={ 23,20,(char*)105,oldsk_cmpr}; + +u8*bdash0_pict,bdash0_mask; +u8 bdash0_cmpr[]={ +0xff,0x00,0xff,0x7,0xe4, +0x55,0x00,0xa,0x28,0x6,0x22,0x2,0x26,0x6,0x22,0x2,0x26,0x8,0x26,0xc,0x24, +0xc,0xe4,0x77,0x00,0xa,0x42,0x24,0xc,0x44,0xa,0xe2,0x6e,0x00,0x24,0x64,0x4,0x62,0xa, +0x22,0x2,0x62,0xa,0x26,0xc,}; +sprite bdash0 ={ 16,15,(char*)45,bdash0_cmpr}; + +u8*bdash1_pict,bdash1_mask; +u8 bdash1_cmpr[]={ +0xfc,0x00,0xff,0xe4,0x55,0x00,0x6,0x28,0x2,0x22,0x2,0x26, +0x2,0x22,0x2,0x26,0x4,0x26,0x8,0x24,0x8,0xe4,0x77,0x00,0x6,0x42,0x24,0x8, +0x44,0x6,0xe2,0x6e,0x00,0x24,0x62,0x4,0x62,0x4,0x62,0x4,0x62,0x4,0x62,0x26, +0x6,0x22,}; +sprite bdash1 ={ 12,15,(char*)46,bdash1_cmpr}; + +u8*bdash2_pict,bdash2_mask; +u8 bdash2_cmpr[]={ +0xff,0x00,0xff,0xb,0xe4,0x55,0x00,0x6,0x28,0x2,0x22,0x2,0x26,0x2,0x22,0x2, +0x26,0x4,0x26,0x8,0x24,0x8,0xe4,0x77,0x00,0x6,0x42,0x24,0x8,0x44,0x8,0x24, +0x8,0xe4,0x6e,0x00,0x8,0x64,0x22,0x4,0x24,0x2,0x22,}; +sprite bdash2 ={ 12,16,(char*)43,bdash2_cmpr}; + +u8*bdash3_pict,bdash3_mask; +u8 bdash3_cmpr[]={ +0xff,0x00,0xff,0x11,0xe4,0x55,0x00,0x8,0x28, +0x4,0x22,0x2,0x26,0x4,0x22,0x2,0x26,0x6,0x26,0xa,0x24,0xa,0xe4, +0x77,0x00,0x8,0x42,0x24,0xa,0x44,0xa,0x24,0x8,0xe8,0x6e,0x00,0x6,0x66,0x2,0x22,0x2, +0x24,0x6,0x22,}; +sprite bdash3 ={ 14,16,(char*)44,bdash3_cmpr}; + +u8*bdash4_pict,bdash4_mask; +u8 bdash4_cmpr[]={ +0xff,0x00,0xff,0x1,0xe2,0x55,0x00,0x4,0x22,0x6,0x22,0x4,0x22,0x4,0x22, +0x2,0x24,0x2,0x22,0x2,0x22,0x2,0x24,0x2,0x22,0x4,0x28,0x8,0x24, +0x8,0x28,0x4,0x22,0x2,0xe4,0x77,0x00,0x2,0x22,0x2,0x42,0x2,0x24,0x2,0x42, +0x6,0x44,0xa,0x24,0x8,0xe2,0x6e,0x00,0x44,0x62,0x6,0x62,0x4,0x62,0x6,0x22, +0x4,0x62,0x4,0x24,0x4,0x24,}; +sprite bdash4 ={ 14,17,(char*)67,bdash4_cmpr}; + +u8*brick0_pict,brick0_mask; +u8 brick0_cmpr[]={ +0xff,0x93,0x00,0x3,0xe4,0x00,0x00,0x4,0x24,0x6,0x22,0x6, +0x22,0x4,0xe2,0x77,0x00,0x22,0x4,0x42,0x22,0x1f,0x1f,0x1f,0x7,0x24,0x4,0x24, +0x6,0x22,0x6,0x22,0x4,0x42,0x22,0x4,0x42,0x22,0x1f,0x3,}; +sprite brick0 ={ 16,16,(char*)40,brick0_cmpr}; + +u8*brick1_pict,brick1_mask; +u8 brick1_cmpr[]={ +0xe3,0xff,0x00,0xe3, +0x00,0x00,0xa,0xe2,0x77,0x00,0xe1,0x88,0x00,0x23,0x2,0x49,0x62,0x23,0x2,0x41,0x63,0x42,0x62,0x3f, +0x21,0xa,0x23,0x3,0x49,0x1,0x23,0x2,0x41,0x62,0x41,0x62,0x42,0x63, +0x23,0x2,0x41,0x3f,0x21,0x6,0x23,0x7,0x45,0x61,0x23,0x2,0x4a,0x61, +0x23,0x2,0x46,0x62,0x41,0x62,0x23,0x2,0x41,0x63,0x41,}; +sprite brick1 ={ 16,14,(char*)63,brick1_cmpr}; + +u8*pelush1_pict,pelush1_mask; +u8 pelush1_cmpr[]={ +0xe3,0x00,0xff,0xe8,0x38,0x00,0xb, +0x22,0xa,0xe9,0x44,0x00,0x6,0x4e,0x2,0xe6,0x66,0x00,0xe5,0x11,0x00,0x4,0xe6,0x77,0x00,0x83,0xa2,0x81,0x4, +0xa7,0x85,0x4,0xac,0x4,0xae,0x2,0xb6,0xa,0xa8,0x8,0xab,0x2,0x42, +0x2,0xae,0x3,0xaa,0x8,0xa6,0x6,}; +sprite pelush1 ={ 16,16,(char*)50,pelush1_cmpr}; + +u8*pelush0_pict,pelush0_mask; +u8 pelush0_cmpr[]={ +0xe4,0x00,0xff,0xe6,0x38,0x00,0xc,0x22,0xa,0xe9,0x44,0x00,0x6, +0x4e,0x2,0xe6,0x66,0x00,0xe5,0x11,0x00,0x4,0xe6,0x77,0x00,0x83,0xa2,0x81,0x4,0xa7,0x85,0x4,0xac, +0x4,0xae,0x2,0xb6,0xa,0xa6,0xa,0xa7,0xa,0xa7,0x5,0x42,0x2,0xae, +0x3,0xab,0x3,}; +sprite pelush0 ={ 16,16,(char*)50,pelush0_cmpr}; + +u8*pelush2_pict,pelush2_mask; +u8 pelush2_cmpr[]={ +0xe4,0x00,0xff,0xe4,0x38,0x00,0xc,0x22,0xa,0xe8,0x44,0x00,0x6,0x4d,0x2,0xea,0x66,0x00,0x4, +0xe5,0x77,0x00,0xe6,0x11,0x00,0x4,0x8b,0x4,0x8b,0x4,0x8d,0x2,0x94,0xa,0x9d,0x2,0x8b, +0x5,0x87,0x15,}; +sprite pelush2 ={ 15,16,(char*)40,pelush2_cmpr}; + +u8*boulder_pict,boulder_mask; +u8 boulder_cmpr[]={ +0xf6,0x00,0xff,0xe5,0x33,0x00,0xa,0x27,0x8,0x23,0xe4,0x37,0x00,0x22,0x6,0x27,0x41, +0x22,0x6,0xe1,0x88,0x00,0x26,0x43,0x21,0x4,0x2a,0x41,0x21,0x4,0x2d,0x2,0x2e, +0x2,0x2e,0x2,0x61,0x27,0x41,0x21,0x41,0x21,0x41,0x21,0x2,0x61,0x28, +0x41,0x21,0x41,0x21,0x4,0x61,0x28,0x41,0x21,0x41,0x4,0x61,0x27,0x41, +0x21,0x41,0x6,0x61,0x27,0x41,0x21,0x7,0x61,0x27,0x4,}; +sprite boulder ={ 16,16,(char*)72,boulder_cmpr}; + +u8*splat0_pict,splat0_mask; +u8 splat0_cmpr[]={ +0xff,0x00,0xff,0x18,0xe2, +0x44,0x00,0x18,0x25,0x5,0x22,0x3,0x22,0xc,0x25,0x8,0x22,0xe5,0x4c,0x00,0x22,0x6,0x22, +0x46,0x22,0x1,0x21,0x4,0x28,0x1,0x21,0x4,0x28,0x9,0x24,0x8,0x24, +0x18,0x22,0xd,}; +sprite splat0 ={ 15,16,(char*)40,splat0_cmpr}; + +u8*splat1_pict,splat1_mask; +u8 splat1_cmpr[]={ +0xe4,0x44,0x00,0xfe,0x00,0xff,0x3,0x2d,0x6,0x28,0x7,0x27,0x9,0x24,0x2, +0xe1,0xcc,0x00,0x3,0x41,0x4,0x25,0x6,0x41,0x4,0x24,0x3,0x45,0x4,0x23,0x1, +0x48,0x4,0x22,0x41,0x1,0x45,0x4,0x23,0x4,0x43,0x4,0x24,0xa,0x26, +0x8,0x25,}; +sprite splat1 ={ 15,14,(char*)47,splat1_cmpr}; + +u8*splat2_pict,splat2_mask; +u8 splat2_cmpr[]={ +0xe3,0x00,0xff,0xe6,0x4c,0x00,0x8,0x25,0xe1,0xee,0x00,0x23,0x5,0x2b,0x4,0x26,0x41,0xe2, +0xce,0x00,0x23,0x3,0x24,0x62,0x41,0x62,0x23,0x2,0x24,0x63,0x41,0x61,0x25,0x1, +0x23,0x41,0x62,0x43,0x22,0x41,0x22,0x1,0x21,0x41,0x21,0x41,0x61,0x43, +0x23,0x41,0x21,0x2,0x25,0x62,0x41,0x62,0x24,0x1,0x23,0x64,0x41,0x63, +0x24,0x1,0x21,0x61,0x21,0x63,0x41,0x61,0x24,0x3,0x24,0x63,0x25,0x3, +0x2b,0x5,0x25,0x41,0x22,0x9,0x24,0x7,}; +sprite splat2 ={ 15,15,(char*)84,splat2_cmpr}; + +u8*splat3_pict,splat3_mask; +u8 splat3_cmpr[]={ +0xe3,0x00,0xff,0xe6,0x6e,0x00,0x6,0x2a,0x3,0x2d, +0x1,0x26,0x2,0xe2,0x66,0x00,0x28,0x5,0x21,0x1,0x27,0x6,0x27,0xe1,0xee,0x00,0x6,0x21, +0x61,0x23,0x61,0x21,0x7,0x22,0x61,0x25,0x7,0x26,0x42,0x4,0x27,0x41, +0x21,0x43,0x61,0x41,0x32,0x2,0x2b,0x4,0x25,0x61,0x22,0x8,0x25,0x5, +}; +sprite splat3 ={ 14,15,(char*)56,splat3_cmpr}; + +u8*splat4_pict,splat4_mask; +u8 splat4_cmpr[]={ +0xe3,0x00,0xff,0xe3,0x40,0x00,0x1,0x22,0x6,0x21,0x2,0x22,0x1,0x22,0x5,0x23,0x7,0x22, +0xb,0x21,0x4,0x22,0x6,0x21,0x1,0x23,0x1,0x22,0xa,0x22,0xb,0x22, +0xf,0x21,0xb,0x22,0x2,0x21,0x7,0x23,0x1,0x21,0x2,0x21,0x2,0x21, +0x4,0x22,0x1,0x24,0x4,0x22,0x1,0x22,0x7,0x24,0x6,0x25,0xe1,0x04,0x00,0x22, +0x8,0x25,0x5,}; +sprite splat4 ={ 14,15,(char*)65,splat4_cmpr}; + +u8*tietzka_pict,tietzka_mask; +u8 tietzka_cmpr[]={ +0xff,0x00,0xff,0xe8,0x77,0xff,0x7,0x21,0xe6,0x99,0xff,0x21,0x7,0x21,0x46,0x21,0x1, +0x24,0x2,0x21,0x46,0x21,0x1,0x21,0xe2,0xff,0xff,0x21,0x2,0x28,0x1,0x24,0x3, +0x26,0x2,0x24,0x4,0x24,0x3,0x24,0x1,0xef,0x66,0xff,0x1,0x85,0x2,0x85,0x4, +0x83,0x4,0x83,0x5,0x83,0x4,0x83,0x3,}; +sprite tietzka ={ 15,13,(char*)57,tietzka_cmpr}; + +u8*pelu_pict,pelu_mask; +u8 pelu_cmpr[]={ +0xff,0x00,0xff,0x1,0xea,0x00,0xff,0xeb,0x44,0x00,0x39,0x42, +0x3e,0x42,0x35,0xed,0x44,0x00,0x37,0x6a,0x36,0xe4,0x11,0x82,0xe6,0xe6,0x00,0x36,0x85,0xe5,0x87,0x00,0x36,0x81, +0xe1,0xff,0x00,0x83,0xc5,0x36,0x84,0xc7,0x35,0xcb,0x33,0xcd,0x31,0xcf,0x3a,0xc4, +0x33,0x62,0x24,0xc7,0x33,0xcd,0x35,0xcb,0x37,0xc9,0x37,0xc9,0x39,0xc6, +0x3b,0xc5,0x3c,0xc4,0x2f,}; +sprite pelu ={ 32,22,(char*)69,pelu_cmpr}; + +void decompress_bitmap(u8*dpic,u8*dmask,u8*s,int count) +{ + u8 pal[7],palm[7],palidx=0; + u8 col,msk,rep,*s1=s+count; + + while(s>5; + + if(col==7){pal[palidx]=col=*s++;palm[palidx]=msk=*s++;palidx++;if(palidx==7)palidx=0;} + else{msk=palm[col];col=pal[col];} + + if(rep) + for(;rep;rep--){*dpic++=col;*dmask++=msk;} + } +} +sprite*allbmps[]={&oldsk,&bdash0,&bdash1,&bdash2,&bdash3,&bdash4,&brick0,&brick1,&pelush1,&pelush0,&pelush2,&boulder,&splat0,&splat1,&splat2,&splat3,&splat4,&tietzka,&pelu,NULL }; +void decompress_allbmp() +{ + u8*d,*d2; + sprite**s=allbmps; + while(*s) + { + d=malloc((*s)->width*(*s)->height*sizeof(u8)); + d2=malloc((*s)->width*(*s)->height*sizeof(u8)); + decompress_bitmap(d,d2,(*s)->mask,(int)((*s)->pict)); + (*s)->pict=d; + (*s)->mask=d2; + s++; + } +} diff -r 000000000000 -r acb5694e93d9 oldchsool/sprites.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/oldchsool/sprites.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,500 @@ +#!/usr/bin/perl +##!/opt/bin/perl5 + +# color=>grayscale palettes: +# +# 0x00,0x08,0x80,0x88,0x87,0x78,0x77,0x7f,0xf7,0xff + +########################### + +$spritz="sprite*allbmps[]={"; + +$wrct=0; +sub wr +{ + printf("0x%x,",$_[0]); + $wrct+=5; + if($wrct>=70){printf("\n");$wrct=0;} +} + +sub wrrle +{ + my ($ch,$cnt)=($_[0],$_[1]); + + if($cnt==0){return;} + + $z=-1; + for($i=0;$i<7;$i++){if($cpal[$i] eq $ch){$z=$i;}} + + if($z==-1) + { + $cpal[$cpalidx]=$ch; + $cpalidx++; + if($cpalidx==7){$cpalidx=0;} + wr((7<<5)|$cnt); + if($pal{ord($ch)} eq '') { print "/* ERROR - $ch */"; } + print $pal{ord($ch)}.","; + $sz+=3; + } + else + { + wr(($z<<5)|$cnt); + $sz++; + } +} + +sub bitmap +{ + $bmpname=$_[0]; + $sz=0; + + @colors=split('/',$_[1]); + foreach(@colors) + { + ($ch,$col,$msk)=split(':',$_); + $pal{ord($ch)}="0x".$col.",0x".$msk; + } + + @lines=split("\n",$_[2]); + $xdim=0;$ydim=0; + + foreach(@lines) + { + if(length($_)>$xdim) { $xdim=length($_); } + } + + print "u8*".$bmpname."_pict,".$bmpname."_mask;\n"; + print "u8 ".$bmpname."_cmpr[]={\n"; + $ydim=0; + + @cpal=('å','å','å','å','å','å','å');$cpalidx=0; + $repch="å";$repcnt=0; + foreach(@lines) + { + for($x=0;$x<$xdim;$x++) + { + $ch=substr($_,$x,1); + if($ch eq "") { $ch=" "; } + + if($ch eq $repch) + { + $repcnt++; + if($repcnt==31){$repcnt=0;wrrle($repch,31);} + } + else + { + wrrle($repch,$repcnt); + $repch=$ch;$repcnt=1; + } + } + $ydim++; + } + wrrle($repch,$repcnt); + print "};\n"; + print "sprite $bmpname ={ $xdim,$ydim,(char*)$sz,$bmpname"."_cmpr};\n\n"; + + $spritz .= '&'.$bmpname.','; +} + +&bitmap('oldsk',' :00:ff/o:88:00/;:67:00/b:78:00/x:ff:00',<>5; + + if(col==7){pal[palidx]=col=*s++;palm[palidx]=msk=*s++;palidx++;if(palidx==7)palidx=0;} + else{msk=palm[col];col=pal[col];} + + if(rep) + for(;rep;rep--){*dpic++=col;*dmask++=msk;} + } +} +JOOH + +print $spritz,"NULL };\n"; + +print <width*(*s)->height*sizeof(u8)); + d2=malloc((*s)->width*(*s)->height*sizeof(u8)); + decompress_bitmap(d,d2,(*s)->mask,(int)((*s)->pict)); + (*s)->pict=d; + (*s)->mask=d2; + s++; + } +} +JOOH2 diff -r 000000000000 -r acb5694e93d9 peluce/Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/Makefile.in Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,16 @@ +CC = gcc -O2 + +all: peluce + +############################ + +OBJS= main.o planes.o font.o sprites.o musa.o landscroll.o ../pwplib.a + +font.h: font-gen.pl + ./font-gen.pl > font.h + +sprites.o: sprites.c sprites.h + $(CC) $(@:.o=.c) -c -o $@ + +clean: + rm -f *.o *~ *.exe diff -r 000000000000 -r acb5694e93d9 peluce/elevdemo.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/elevdemo.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,257 @@ +/* + + generic rotozoomer for sprites + + struct + { + char*colors; + char*mask; + int width,height; + }sprite; + + rotozoom(char* int du,int dv,int dui) + + + texttri + + + + dim/4 padding to every end + + 22x22 pelulamu => padding 6 + +struct +{ + char*buf; + int w,h; +}demobuf; + +void rotozoom(int x0,int y0, + char*map,int dim,int angle,int zoom) +{ + int du,dv,u,v,x,y; + char*d=demobuf.buf; + + /* coordinate clipping */ + + {int xp0,yp0; + dim=(dim*zoom)>>8; + + if(x0+dim>bufw)xdim=demobuf.w-x0;else xdim=dim; + if(y0+dim>bufh)ydim=demobuf.h-y0;else ydim=dim; + + if(x0<0){xdim+=x0;xp0=-dim-x0; x0=0;}else xp0=-dim; + if(y0<0){ydim+=y0;yp0=-dim-y0; y0=0;}else yp0=-dim; + + if(xdim<=0 || ydim<=0)return; + + /* init rotations */ + + /* ...test here: if angle==0 => if zoom==256 etc */ + + du=sin(angle/256.0)*zoom; + dv=cos(angle/256.0)*zoom; + + u=-du*xp0-dv*yp0; + v=-dv*xp0+du*yp0; + } + + /** innerl00p ***/ + + {int duo=-dv-du*xdim, + dvo= du-dv*xdim, + mod=demobuf.w-xdim; + + d+=ydim*demobuf.w+xdim; + + for(y=ydim;y;y--) + { + for(x=xdim;x;x--) + { + int ptr=(u&0xff00)+(v>>8); + + *d=(*d&map[ptr])|map[ptr+128]; + d++; + u+=du; + v+=dv; + } + + u+=duo; + v+=dvo; + d+=mod; + } + } +} + +void pelulamu_animate() +{ + /* - draw torso: thick lines & rectangles + - draw head + */ +} + + + +Cvoid drawtext() +{ + +} + +/* + + buf,bufw,bufh + + x0,y0,dim,angle,zoom bufw,bufh + + + put a 50% safebox around the stuff + + + 128: 64 + + 256x256 + + for 8x8 texture (font!): 16x16 space + + font: 5x5 textures + + 7x5 => 14x10 space 280 bytes/char => abt 10k of font data + + aspectratio adjustment + + + ***** + ** ** + ******* + ** ** + ** ** + + ****** + ** ** + ****** + ** ** + ****** + + ***** + ** ** + ** + ** ** + ***** + + ****** + ** ** + ** ** + ** ** + ****** + + ******* + ** + **** + ** + ******* + + ******* + ** + **** + ** + ** + + for 16x16 texture: 32x32 space + for 32x32 texture: 64x64 space + for 64x64 texture: 128x128 space - no bigger possible here + + + ------------- + ------------- + --.........-- + --.........-- + --.........-- + --.........-- + --....o....-- + --.........-- + --.........-- + --.........-- + --.........-- + ------------- + ------------- + + + sqrt(2)*width,sqrt(2)*height + + 1.5*width,1.5*height + + + + delta always constant + + + innerloop has constant du,dv + + outerloop: dv,-du + + + + + -------.-------- + ------....------ + -----.......---- + ----..........-- + ---............- ________ + --.............. + -..............- + ..............-- ________ + -............--- + ---.........---- + -----......----- + -------...------ + --------.-------- + + + + ____________ + . + ... + ..... + ....... + ......... + ........... ______ + -........... + ........... ____ + ......... + ....... + ..... + ... + . _________ + + __-- sqrt ( (a/2)**2 + (a/sqrt(2))**2) + ------.-----/ == sqrt(aa/4 + aa/2) == sqrt(3aa/4) == sqrt(3)/4 * a ==~ 0.433a + -----...---/- + ----.....-/-- + ---.......--- a/sqrt(2) + --.........-- + -...........- + ......o...... + -...........- + --.........-- + ---.......--- + ----.....---- + -----...----- + ------.------ + + square sprites + + + |\ (a*sqrt(2))/2 + a/2 | \ + |__\ + + a/2 + +*/ + +/* + +<#linux.fi:Goblet> mä tiedän tuon xazturin, se on sellanen about 140cm + saatananpalvojapelle millä on pitkä musta takki ja + tukka ja siitä tulee mulle aina mieleen addams family :D + +*/ diff -r 000000000000 -r acb5694e93d9 peluce/font-gen.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/font-gen.pl Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,202 @@ +#!/usr/bin/perl + +$_=<='@') + { + int yy=0,xx;u8*s=pwpfont[*txt-'@']; + for(;yy<5;yy++) + for(xx=0;xx<7;xx++) + { + fontbuf.pict + [(y+yy)*80+ + (x+xx)]=*s++&blend; + } + x+=8; + } + else + { + x=0;y+=6; + } + txt++; + } +} + +void textoff(int t) +{ + texter.zoomfrom=texter.zoomto=2048; + texter.zoomstep=0; +} + +void textshow(int t) +{ + int z=texter.zoomfrom+(t-texter.zoomsince)*texter.zoomstep; + + if(texter.zoomfromtexter.zoomto)z=texter.zoomto; + } + else + if(z=32 && z<=960) + zoomsprite_gen(0,0,&fontbuf,z); +} + +void justshowtext(char*txt,int col) +{ + texter.zoomsince=texter.zoomstep=0; + texter.zoomto=texter.zoomfrom=80; + setfontbuf(txt,col); +} + +void textzoomin(int start,char*txt) +{ + setfontbuf(txt,0xff); + + texter.zoomsince=start; + texter.zoomfrom=32; + texter.zoomto=80; + texter.zoomstep=4; +} + +void textzoomout(int start) +{ + texter.zoomfrom=80; + texter.zoomsince=start; + texter.zoomstep=16; + texter.zoomto=1024; +} diff -r 000000000000 -r acb5694e93d9 peluce/font.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/font.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,194 @@ +char pwpfont[][5*7]= +{ +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, + +0xff,0xff,0xff,0xff,0xff,0xff,0x88, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x88, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x88, + +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0x77,0xff,0xff,0xff,0xff,0xff,0xff, + +0xff,0xff,0xff,0xff,0xff,0xff,0x88, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x88, + +0x88,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, + +0x88,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, + +0x77,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0x77, + +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, + +0xff,0xff,0xff,0xff,0xff,0xff,0x00, +0x00,0x88,0xff,0xff,0x88,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00, +0x00,0x88,0xff,0xff,0x88,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00, + +0x00,0x00,0x88,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x88,0x00,0x88,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0x77, + +0xff,0xff,0x00,0x00,0x88,0xff,0xff, +0xff,0xff,0x00,0x88,0xff,0xff,0x00, +0xff,0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x88,0xff,0xff,0x00, +0xff,0xff,0x00,0x00,0x88,0xff,0xff, + +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, + +0x77,0xff,0xff,0x77,0xff,0xff,0x77, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x88,0xff,0x88,0xff,0xff, +0xff,0xff,0x00,0x88,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, + +0xff,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, + +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0x77, + +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, + +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x88,0x77,0xff, +0xff,0xff,0x00,0x00,0x77,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0xff, + +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x88,0x00, +0xff,0xff,0x00,0x88,0xff,0xff,0xff, + +0x77,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00, +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x77, + +0xff,0xff,0xff,0xff,0xff,0xff,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00, + +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0x77, + +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x77,0x00,0x77,0xff,0xff, +0x88,0xff,0xff,0x77,0xff,0xff,0x88, +0x00,0x88,0xff,0xff,0xff,0x88,0x00, + +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0xff,0x00,0xff,0xff, +0xff,0xff,0x77,0xff,0x77,0xff,0xff, +0xff,0xff,0xff,0x88,0xff,0xff,0xff, + +0xff,0xff,0x00,0x00,0xff,0xff,0x00, +0x00,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x88,0xff,0xff,0x88,0x00,0x00, +0x00,0xff,0xff,0xff,0xff,0x00,0x00, +0xff,0xff,0x00,0x00,0xff,0xff,0x00, + +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0x00,0x00,0x00,0x00,0x77,0xff,0x77, + +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x77,0xff,0xff,0x88, +0x00,0x88,0xff,0xff,0xff,0x88,0x00, +0x88,0xff,0xff,0x77,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, + +0x00,0x00,0x77,0xff,0xff,0x00,0x00, +0x00,0x00,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, + +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0x77,0xff,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x77, + +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x77,0xff,0xff,0xff,0xff,0xff,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +0xff,0x77,0x00,0xff,0x00,0x77,0xff, +0x00,0x00,0xff,0xff,0xff,0x00,0x00, +0x77,0xff,0xff,0x00,0xff,0xff,0x77, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, + +0xff,0x77,0x00,0x00,0x00,0x77,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff, +}; diff -r 000000000000 -r acb5694e93d9 peluce/landscroll.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/landscroll.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,95 @@ +#include "pwpdemo.h" + +/* +char texture1[32*32]={ +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x99,0x89,0x89,0x89,0x89,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x99,0x99,0x89,0x89,0x89,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x89,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x99,0x99,0x89,0x89,0x89,0x99,0x99,0x89,0x89,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x10,0x10,0x10,0x89,0x99,0x10,0x10,0x89,0x99,0x99,0x89,0x99,0x99,0x89,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01, +0x01,0x10,0x89,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x99,0x99,0x99,0x89,0x89,0x89,0x89,0x99,0x99,0x99,0x99,0x89,0x10,0x89,0x99,0x10,0x01,0x01, +0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x10,0x10,0x10,0x89,0x89,0x99,0x99,0x89,0x89,0x89,0x89,0x89,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x89,0x99,0x99,0x99,0x89,0x89,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x89,0x89,0x99,0x99,0x89,0x89,0x89,0x89,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01, +0x10,0x01,0x01,0x01,0x10,0x10,0x99,0x99,0x89,0x99,0x99,0x99,0x89,0x10,0x10,0x10,0x99,0x99,0x99,0x89,0x89,0x99,0x99,0x99,0x10,0x99,0x10,0x10,0x10,0x10,0x10,0x10, +0x10,0x01,0x01,0x10,0x10,0x89,0x99,0x99,0x89,0x89,0x99,0x99,0x99,0x10,0x01,0x10,0x10,0x99,0x89,0x89,0x89,0x89,0x99,0x99,0x99,0x99,0x10,0x10,0x89,0x99,0x99,0x10, +0x10,0x01,0x01,0x10,0x99,0x99,0x89,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x01,0x01,0x10,0x10,0x10,0x99,0x99,0x89,0x89,0x89,0x89,0x89,0x89,0x10,0x10,0x10,0x89,0x89, +0x10,0x01,0x01,0x10,0x99,0x99,0x89,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x99,0x99,0x99,0x89,0x89,0x99,0x10,0x10,0x10,0x01,0x10,0x10,0x10, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x89,0x89,0x99,0x99,0x89,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x99,0x99,0x99,0x99,0x89,0x89,0x99,0x99,0x99,0x99,0x89,0x99,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x10,0x10,0x10,0x10,0x89,0x89,0x10,0x10,0x10,0x10,0x10,0x99,0x99,0x89,0x89,0x89,0x99,0x99,0x99,0x89,0x99,0x99,0x89,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01, +0x10,0x10,0x10,0x99,0x99,0x89,0x89,0x99,0x99,0x89,0x89,0x89,0x99,0x99,0x89,0x99,0x99,0x89,0x89,0x89,0x99,0x99,0x99,0x99,0x89,0x89,0x10,0x10,0x10,0x01,0x01,0x01, +0x10,0x89,0x89,0x99,0x99,0x89,0x89,0x99,0x99,0x89,0x89,0x89,0x89,0x89,0x99,0x99,0x99,0x89,0x99,0x10,0x89,0x89,0x89,0x89,0x99,0x99,0x99,0x89,0x10,0x10,0x01,0x01, +0x10,0x89,0x89,0x89,0x89,0x99,0x99,0x89,0x89,0x99,0x99,0x89,0x89,0x99,0x99,0x89,0x99,0x99,0x99,0x10,0x10,0x89,0x89,0x99,0x99,0x99,0x99,0x89,0x99,0x10,0x01,0x01, +0x10,0x10,0x10,0x10,0x89,0x99,0x99,0x89,0x99,0x99,0x99,0x99,0x99,0x89,0x89,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x99,0x99,0x99,0x99,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x89,0x89,0x99,0x99,0x99,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x10,0x89,0x99,0x99,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x10,0x89,0x10,0x10,0x89,0x89,0x89,0x89,0x89,0x10,0x10,0x10,0x10,0x10,0x01,0x01, +0x01,0x01,0x01,0x10,0x99,0x99,0x10,0x10,0x10,0x89,0x89,0x99,0x10,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x89,0x89,0x89,0x99,0x99,0x99,0x10,0x01,0x01, +0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x89,0x99,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x89,0x99,0x10,0x99,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x89,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 +}; +*/ + +char texture1[32*32]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xaa,0x8a,0x8a,0x8a,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xaa,0xaa,0x8a,0x8a,0x8a,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x8a,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xaa,0xaa,0x8a,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x02,0x02,0x02,0x8a,0xaa,0x02,0x02,0x8a,0xaa,0xaa,0x8a,0xaa,0xaa,0x8a,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00, +0x00,0x02,0x8a,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xaa,0xaa,0xaa,0x8a,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0xaa,0x8a,0x02,0x8a,0xaa,0x02,0x00,0x00, +0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x02,0x02,0x02,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0x8a,0x8a,0x8a,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x8a,0xaa,0xaa,0xaa,0x8a,0x8a,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0x8a,0x8a,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x02,0x02,0xaa,0xaa,0x8a,0xaa,0xaa,0xaa,0x8a,0x02,0x02,0x02,0xaa,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0xaa,0x02,0xaa,0x02,0x02,0x02,0x02,0x02,0x02, +0x02,0x00,0x00,0x02,0x02,0x8a,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0xaa,0x02,0x00,0x02,0x02,0xaa,0x8a,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0xaa,0x02,0x02,0x8a,0xaa,0xaa,0x02, +0x02,0x00,0x00,0x02,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x00,0x00,0x02,0x02,0x02,0xaa,0xaa,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x02,0x02,0x02,0x8a,0x8a, +0x02,0x00,0x00,0x02,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0xaa,0xaa,0xaa,0x8a,0x8a,0xaa,0x02,0x02,0x02,0x00,0x02,0x02,0x02, +0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0xaa,0xaa,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0xaa,0xaa,0x8a,0xaa,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x02,0x02,0x02,0x02,0x8a,0x8a,0x02,0x02,0x02,0x02,0x02,0xaa,0xaa,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0x8a,0xaa,0xaa,0x8a,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00, +0x02,0x02,0x02,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0x8a,0xaa,0xaa,0x8a,0xaa,0xaa,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0xaa,0x8a,0x8a,0x02,0x02,0x02,0x00,0x00,0x00, +0x02,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0x8a,0xaa,0x02,0x8a,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0x8a,0x02,0x02,0x00,0x00, +0x02,0x8a,0x8a,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x8a,0x8a,0xaa,0xaa,0x8a,0xaa,0xaa,0xaa,0x02,0x02,0x8a,0x8a,0xaa,0xaa,0xaa,0xaa,0x8a,0xaa,0x02,0x00,0x00, +0x02,0x02,0x02,0x02,0x8a,0xaa,0xaa,0x8a,0xaa,0xaa,0xaa,0xaa,0xaa,0x8a,0x8a,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0xaa,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x8a,0x8a,0xaa,0xaa,0xaa,0x02, +0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02, +0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x02,0x8a,0xaa,0xaa,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x02,0x8a,0x02,0x02,0x8a,0x8a,0x8a,0x8a,0x8a,0x02,0x02,0x02,0x02,0x02,0x00,0x00, +0x00,0x00,0x00,0x02,0xaa,0xaa,0x02,0x02,0x02,0x8a,0x8a,0xaa,0x02,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x8a,0x8a,0x8a,0xaa,0xaa,0xaa,0x02,0x00,0x00, +0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x8a,0xaa,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x8a,0xaa,0x02,0xaa,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x8a,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +void scroller_do(int t,int hg) +{ + u8*d=pwplib.videobuf.d; + + static int lastt=0; + int y,offy,k=120; + + if(hg<0)hg=0;else if(hg>pwplib.videobuf.height-1) + hg=pwplib.videobuf.height-1; + + memset(d,0x08,pwplib.videobuf.width*(pwplib.videobuf.height-hg)); + d+=pwplib.videobuf.width*(pwplib.videobuf.height-hg); + + for(y=0;y>4)*32*256); + {int x=pwplib.videobuf.width;for(;x;x--)*d++=texture1[((ofz+=dofz)>>8)&1023];} + k-=(k>>3); + } +} diff -r 000000000000 -r acb5694e93d9 peluce/main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/main.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,465 @@ +#include +#include +#include +#include + +#include "../pwplib/pwplib.h" + +#define MAX(a,b) ((a)<(b)?(b):(a)) +#define MIN(a,b) ((a)>(b)?(b):(a)) + +struct +{ + int dsgtime; + + int flagz; + int planemode; + + int enctime,enckode,enczoom,encspeed; + + int endfxt; + + int metsaemode; + int bouncemode; +}demovar; + +char*finnishtexts[]= +{ + "@@@UUSI\n@@IHMEMAA\n@@@@ON\n@@L_YTYNYT", + "@@@PELUN\n@MIELEST^\n@KAIKKI@ON\n@@IHANAA", + "@EIK^@H^N\n@@@@OSAA\n@@@VAROA\n@@VAAROJA", + + "@@SILLOIN\nPAHA@HENKI\n@@RIIVAA\n@@@PELUN", + "JA@H^NEST^\n@@TULEE", + "\nTAHDOTON", + "SAATANAN\nPALVELIJA", + + "@@@PELU\nTEURASTAA", + "@@PALJON\n@IHMISI^@]", + + "KRISTITYT\n@@P^LLIT", + "@UUSMEDIA]\n@@P^LLIT", + "@@TESNO]\n@@P^LLIT", + "@ARMEIJA]\n@@P^LLIT", + "@WINDOWS]\n@@P^LLIT", + "@@QUAKE]\n@@P^LLIT", + + "@JA@NIIN\nMAAILMASTA\n@@@TULI\n@PAREMPI", + "\n@P^LLIT_N\n@@@MAA", + "\n@@VAPAA\n@@@MAA", + "\n@IHMEMAA", + + "@WANNABE]\nASENNETTA\nVUODESTA\n@@[\\\\Y" +}; + +char*englishtexts[]= +{ + "@@A@NEW\nWONDERLAND\n@HAS@BEEN\n@@@FOUND", + "@@@PELU\n@@THINKS\nEVERYTHING\nIS@SUPERB", + "@@AND@HE\n@DOES@NOT\n@NOTICE\n@THE@RISKS", + + "@SUDDENLY\n@@AN@EVIL\n@@SPIRIT\nTAKES@PELU", + "@AND@SO@HE\n@@BECOMES", + "@@@@A\nHELPLESS", + "@@@SATAN\nWORSHIPPER", + + "@@PELU\n@MURDERS", + "@A@LOT@OF\n@PEOPLE@]", + + "CHRISTIAN\n@IDIOTS", + "NEW@MEDIA\n@IDIOTS", + "@TECHNO\n@IDIOTS", + "MILITARY\n@IDIOTS", + "@WINDOWS\n@IDIOTS", + "@@QUAKE\n@IDIOTS", + + "@AND@SO\n@THE@WORLD\n@BECAME@A\nLOT@BETTER", + "@@@@A\n@@WORLD\n@FREE@OF\n@@IDIOTS\n", + "\n@A@FREE\n@@WORLD", + + "\nWONDERLAND", + + "@WANNA]BE\nATTITUDE\n@@SINCE\n@@[\\\\Y" +}; + +void rundemo() +{ + int quit=0; + char**texts=englishtexts; + + pwplib_startup(); + + pwplib_buf= + malloc(sizeof(u8)*pwplib.videobuf.width*pwplib.videobuf.height); + + initfontbuf(); + + if(!pwplib.setup[SETUP_NOSOUND]) /* fix */ + initplayer(); + + if(!strcmp(pwplib_locale,"fi"))texts=finnishtexts; + + pwplib_prep_attr(); + + demovar.flagz=8|16; + + {demovar.dsgtime=0; + demovar.endfxt=1<<30; + demovar.metsaemode=0; + while(!quit) + { + int t=pwplib_timer(); + + while(demovar.dsgtime>1); + if(demovar.flagz&4) memset(pwplib.videobuf.d,0, + pwplib.videobuf.width*pwplib.videobuf.height*sizeof(u8)); + if(demovar.flagz&2) planes_do(MIN(t,demovar.endfxt),demovar.planemode); + if(demovar.flagz&64) + { + int i=pwplib.videobuf.width*pwplib.videobuf.height; + char*d=pwplib.videobuf.d,a=rand()&255,b=rand()&255; + for(;i;i--){*d++=(a^b)&0x99;a*=7;b=b-i+11*a;} + } + + if(demovar.flagz&1) pelubounce(t*16/5,demovar.bouncemode); + if(demovar.flagz&16) metsae(MIN(t,demovar.endfxt),demovar.metsaemode); + + if(demovar.flagz&32) + encounter(demovar.enctime-t,demovar.enckode,demovar.enczoom); + if(demovar.flagz&128) + drawkiller((G+544*4)-t); + + #undef G + + textshow(t); + + pwplib_dump_rast(); + if(!quit)pwplib_loopflush(); + } + } + + pwplib_end(); +} + +int main(int argc,char**argv) +{ + if(!pwplib_init(argc,argv))return 1; + + rundemo(); + + return 0; +} + \ No newline at end of file diff -r 000000000000 -r acb5694e93d9 peluce/musa.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/musa.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,64 @@ +#include "pwpdemo.h" + +#include "musa.h" + +struct +{ + int ord,patt,row; + int tick,tempo; +}player; + +void newnote() +{ + int c=0; + + for(;c<3;c++) + { + int note=pwpmusic[player.patt][c][player.row]; + + if(note==254) + pwplib_sound_nv(c,0,0); + else + if(note!=255) + pwplib_sound_nv(c,(note-5)<<8,pwplib.setup[SETUP_VOLUME]); + } + player.row++; + if(player.row==64) + { + player.row=0; + player.ord++; + player.patt=pwpmusic_order[player.ord]; + + if(player.patt>128) + { + if(player.patt==255)player.ord=0;else + { + if(player.patt==254)player.tempo=4; + player.ord++; + } + player.patt=pwpmusic_order[player.ord]; + } + } +} + +void playtick() +{ + if(player.tick==0) + newnote(); + + player.tick++; + if(player.tick==player.tempo) + player.tick=0; +} + +void initplayer() +{ + player.row=player.ord; + player.patt=pwpmusic_order[0]; + player.tick=0; + player.tempo=5; + pwplib_setplayer(playtick); +} + + +/* loopflush(); */ diff -r 000000000000 -r acb5694e93d9 peluce/musa.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/musa.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,175 @@ +/* + +alkuteema: + +0x0c 0x0c +0x0b 0x0b +0x0d 0x0d +0x0b 0x0b +0x0d 0x0e + +hilpeys: + +0x02 +0x05 0x04 +0x07 0x01 +0x06 0x03 +0x05 0x04 +0x07 0x01 +0x06 0x03 + +0x0f tyhjyys + +toinen töödötys + +0x08 0x08 +0x09 0x09 + +*/ + +u8 pwpmusic_order[]= +{ + 7,7,8,8,9,10, + + 254, + 11, + + 0,1,2,3,4,5,6,1,2,3,4,5,6, + 7,7, + 11, + + 1,2,3,4,11,11,11,11 +}; + +u8 pwpmusic[][3][64]= +{ + +/* 00 hilpeysintro */ + +24, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 24, 254, 24, 254, 24, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 24, 254, 24, 254, 27, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 34, 254, 34, 254, 29, 254, 255, 255, 255, 255, 255, 255, 22, 255, 255, 254, 27, 255, 255, 254, +36, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 36, 254, 36, 254, 36, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 36, 254, 36, 254, 39, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 46, 254, 46, 254, 41, 255, 255, 255, 254, 255, 255, 255, 34, 255, 254, 255, 39, 255, 254, 255, +60, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 58, 255, 255, 254, 58, 255, 255, 255, 70, 254, 70, 254, 70, 65, 70, 65, 75, 79, 80, 79, + +/* 01 joo5 */ + +24, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 27, 254, 27, 254, 39, 254, 27, 254, 22, 254, 22, 254, 34, 254, 22, 254, 26, 254, 38, 254, 39, 254, 38, 254, +36, 255, 255, 254, 48, 254, 36, 254, 36, 254, 48, 254, 36, 254, 48, 254, 36, 255, 255, 254, 48, 254, 36, 254, 36, 254, 48, 254, 36, 254, 48, 254, 36, 255, 255, 254, 48, 254, 36, 254, 39, 255, 255, 254, 51, 254, 39, 254, 34, 255, 255, 254, 46, 254, 34, 254, 38, 254, 39, 254, 51, 254, 50, 254, +72, 254, 72, 254, 79, 254, 72, 254, 75, 254, 79, 254, 72, 254, 79, 254, 72, 254, 72, 254, 79, 254, 72, 254, 75, 254, 255, 255, 79, 254, 72, 254, 72, 254, 72, 254, 79, 254, 72, 254, 75, 254, 79, 254, 82, 254, 75, 254, 70, 254, 74, 254, 70, 254, 77, 254, 74, 254, 255, 255, 75, 254, 74, 254, + +/* 02 joo4 */ + +24, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 36, 254, 24, 254, 24, 254, 36, 254, 24, 254, 27, 254, 27, 254, 39, 254, 27, 254, 22, 254, 22, 254, 34, 254, 22, 254, 26, 254, 255, 255, 255, 255, 255, 255, +36, 255, 255, 254, 48, 254, 36, 254, 36, 254, 48, 254, 36, 254, 48, 254, 36, 255, 255, 254, 48, 254, 36, 254, 36, 254, 48, 254, 36, 254, 48, 254, 36, 255, 255, 254, 48, 254, 36, 254, 39, 255, 255, 254, 51, 254, 39, 254, 34, 255, 255, 254, 46, 254, 34, 254, 38, 254, 255, 255, 255, 255, 255, 255, +72, 254, 72, 254, 79, 254, 72, 254, 75, 254, 79, 254, 72, 254, 79, 254, 72, 254, 255, 254, 79, 254, 72, 254, 255, 254, 79, 255, 72, 254, 72, 254, 72, 254, 255, 254, 79, 254, 72, 254, 75, 254, 255, 254, 82, 254, 75, 254, 82, 254, 82, 254, 82, 254, 83, 254, 84, 254, 85, 254, 86, 254, 87, 254, + +/* 03 joo7 */ + +29, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 32, 254, 32, 254, 44, 254, 32, 254, 27, 254, 27, 254, 39, 254, 27, 254, 31, 254, 43, 254, 44, 254, 43, 254, +41, 255, 255, 254, 53, 254, 41, 254, 41, 254, 53, 254, 41, 254, 53, 254, 41, 255, 255, 254, 53, 254, 41, 254, 41, 254, 53, 254, 41, 254, 53, 254, 41, 255, 255, 254, 53, 254, 41, 254, 44, 255, 255, 254, 56, 254, 44, 254, 39, 255, 255, 254, 51, 254, 39, 254, 43, 254, 44, 254, 56, 254, 55, 254, +77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 84, 254, 77, 254, 84, 254, 77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 255, 255, 84, 254, 77, 254, 77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 84, 254, 87, 254, 80, 254, 75, 254, 79, 254, 75, 254, 82, 254, 79, 254, 255, 255, 80, 254, 79, 254, + +/* 04 joo1 */ + +29, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 41, 254, 29, 254, 29, 254, 41, 254, 29, 254, 32, 254, 32, 254, 44, 254, 32, 254, 27, 254, 27, 254, 39, 254, 27, 254, 255, 255, 255, 255, 255, 255, 255, 255, +41, 255, 255, 254, 53, 254, 41, 254, 41, 254, 53, 254, 41, 254, 53, 254, 41, 255, 255, 254, 53, 254, 41, 254, 41, 254, 53, 254, 41, 254, 53, 254, 41, 255, 255, 254, 53, 254, 41, 254, 44, 255, 255, 254, 56, 254, 44, 254, 39, 255, 255, 254, 51, 254, 39, 254, 255, 255, 255, 255, 255, 255, 255, 255, +77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 84, 254, 77, 254, 84, 254, 77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 255, 255, 84, 254, 77, 254, 77, 254, 255, 255, 84, 254, 255, 255, 80, 254, 255, 255, 87, 254, 255, 255, 75, 254, 79, 254, 80, 254, 79, 254, 75, 254, 82, 254, 80, 254, 79, 254, + +/* 05 joo6 */ + +21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 24, 254, 24, 254, 36, 254, 24, 254, 19, 254, 19, 254, 31, 254, 19, 254, 23, 254, 23, 254, 36, 254, 35, 254, +33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 36, 255, 255, 254, 48, 254, 36, 254, 31, 255, 255, 254, 43, 254, 31, 254, 35, 254, 255, 255, 48, 254, 47, 254, +69, 254, 69, 254, 76, 254, 69, 254, 72, 254, 76, 254, 69, 254, 76, 254, 69, 254, 69, 254, 76, 254, 69, 254, 72, 254, 255, 255, 76, 254, 69, 254, 69, 254, 69, 254, 76, 254, 69, 254, 72, 254, 76, 254, 79, 254, 72, 254, 67, 254, 71, 254, 67, 254, 74, 254, 71, 254, 255, 255, 72, 254, 71, 254, + +/* 06 joo3 */ + +21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 24, 254, 24, 254, 36, 254, 24, 254, 19, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 71, 255, 255, 255, +33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 36, 255, 255, 254, 48, 254, 36, 254, 31, 254, 255, 255, 255, 255, 255, 255, 72, 254, 71, 254, 255, 255, 255, 255, +69, 254, 69, 254, 76, 254, 69, 254, 72, 254, 76, 254, 69, 254, 76, 254, 69, 254, 69, 254, 76, 254, 69, 254, 72, 254, 255, 255, 76, 254, 69, 254, 69, 254, 69, 254, 76, 254, 69, 254, 72, 254, 76, 254, 79, 254, 72, 254, 67, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, + +/* 07 jooc */ + +36, 255, 255, 254, 43, 254, 43, 254, 36, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 36, 255, 255, 254, 36, 255, 255, 254, 43, 254, 43, 254, 39, 255, 255, 254, 46, 254, 46, 254, 39, 255, 255, 254, 38, 254, 39, 254, 255, 255, 255, 255, 38, 255, 255, 254, 38, 255, 255, 254, 41, 254, 34, 254, +72, 254, 60, 254, 48, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 75, 254, 63, 254, 51, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + +/* 08 joob */ + +36, 255, 255, 254, 43, 254, 43, 254, 36, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 36, 255, 255, 254, 36, 255, 255, 254, 43, 254, 43, 254, 39, 255, 255, 254, 46, 254, 46, 254, 39, 255, 255, 254, 38, 254, 39, 254, 255, 255, 255, 255, 38, 255, 255, 254, 38, 255, 255, 254, 41, 254, 34, 254, +60, 254, 60, 254, 72, 254, 67, 254, 60, 254, 60, 254, 58, 254, 60, 254, 255, 255, 255, 255, 60, 254, 60, 254, 72, 254, 67, 254, 60, 254, 72, 254, 63, 254, 63, 254, 75, 254, 70, 254, 63, 254, 63, 254, 75, 254, 70, 254, 255, 255, 255, 255, 62, 254, 63, 254, 62, 254, 65, 254, 58, 254, 62, 254, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + +/* 09 jood */ + +41, 255, 255, 254, 48, 254, 48, 254, 41, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 41, 255, 255, 254, 41, 255, 255, 254, 48, 254, 48, 254, 44, 255, 255, 254, 51, 254, 51, 254, 44, 255, 255, 254, 43, 254, 44, 254, 255, 255, 255, 255, 43, 255, 255, 254, 43, 255, 255, 254, 46, 254, 39, 254, +65, 254, 65, 254, 77, 254, 72, 254, 65, 254, 65, 254, 63, 254, 65, 254, 255, 255, 255, 255, 65, 254, 65, 254, 77, 254, 72, 254, 65, 254, 77, 254, 68, 254, 68, 254, 80, 254, 75, 254, 68, 254, 68, 254, 80, 254, 75, 254, 255, 255, 255, 255, 67, 254, 68, 254, 67, 254, 70, 254, 63, 254, 67, 254, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + +/* 10 jooe */ + +41, 255, 255, 254, 48, 254, 48, 254, 41, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 41, 255, 255, 254, 41, 255, 255, 254, 48, 254, 48, 254, 44, 255, 255, 254, 51, 254, 51, 254, 44, 255, 255, 254, 43, 254, 44, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +65, 254, 65, 254, 77, 254, 72, 254, 65, 254, 65, 254, 63, 254, 65, 254, 255, 255, 255, 255, 65, 254, 65, 254, 77, 254, 72, 254, 65, 254, 77, 254, 68, 254, 68, 254, 80, 254, 75, 254, 68, 254, 68, 254, 80, 254, 75, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + +/* 11 tyhjae */ + +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + +/* 12 -- #5 without melody */ + +21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 24, 254, 24, 254, 36, 254, 24, 254, 19, 254, 19, 254, 31, 254, 19, 254, 23, 254, 23, 254, 36, 254, 35, 254, +33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 36, 255, 255, 254, 48, 254, 36, 254, 31, 255, 255, 254, 43, 254, 31, 254, 35, 254, 255, 255, 48, 254, 47, 254, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + +/* 13 */ + +21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 33, 254, 21, 254, 21, 254, 33, 254, 21, 254, 24, 254, 24, 254, 36, 254, 24, 254, 19, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 71, 255, 255, 255, +33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 33, 254, 45, 254, 33, 254, 45, 254, 33, 255, 255, 254, 45, 254, 33, 254, 36, 255, 255, 254, 48, 254, 36, 254, 31, 254, 255, 255, 255, 255, 255, 255, 72, 254, 71, 254, 255, 255, 255, 255, +254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, + + +}; + +/* + + + +1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 1, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 0, 48, 48, 48, 48, +41, 255, 255, 254, 53, 254, 41, 254, 41, 254, 53, 254, 41, 254, 53, 254, 41, 255, 255, 254, 53, 254, 41, 254, 41, 254, 53, 254, 41, 254, 53, 254, 41, 255, 255, 254, 53, 254, 41, 254, 44, 255, 255, 254, 56, 254, 44, 254, 39, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, +pattern 0.2: +77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 84, 254, 77, 254, 84, 254, 77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 255, 255, 84, 254, 77, 254, 77, 254, 77, 254, 84, 254, 77, 254, 80, 254, 84, 254, 87, 254, 80, 254, 77, 254, 77, 254, 77, 254, 77, 254, 77, 254, 255, 255, 255, 255, 255, 255, +pattern 0.3: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, +pattern 3.3: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, + + + +pattern 5.3: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, +pattern 6.3: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, + + +pattern 8.0: +36, 254, 36, 254, 39, 254, 36, 254, 36, 254, 36, 254, 39, 254, 36, 254, 39, 254, 39, 254, 43, 254, 39, 254, 39, 254, 39, 254, 43, 254, 39, 254, 34, 254, 34, 254, 38, 254, 34, 254, 34, 254, 34, 254, 41, 254, 38, 254, 36, 254, 36, 254, 39, 254, 36, 254, 36, 254, 36, 254, 38, 254, 39, 254, +pattern 8.1: +60, 254, 60, 254, 60, 254, 60, 254, 63, 254, 60, 254, 255, 255, 60, 254, 63, 254, 63, 254, 67, 254, 63, 254, 65, 254, 67, 254, 65, 254, 63, 254, 58, 254, 58, 254, 62, 254, 58, 254, 62, 254, 65, 254, 63, 254, 62, 254, 60, 254, 60, 254, 63, 254, 65, 254, 63, 254, 65, 254, 63, 254, 58, 254, +pattern 8.2: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, +pattern 9.0: +41, 254, 41, 254, 44, 254, 41, 254, 41, 254, 41, 254, 44, 254, 41, 254, 44, 254, 44, 254, 48, 254, 44, 254, 44, 254, 44, 254, 48, 254, 44, 254, 39, 254, 39, 254, 43, 254, 39, 254, 39, 254, 39, 254, 46, 254, 43, 254, 41, 254, 41, 254, 44, 254, 41, 254, 41, 254, 41, 254, 43, 254, 44, 254, +pattern 9.1: +65, 254, 65, 254, 65, 254, 65, 254, 68, 254, 65, 254, 255, 255, 65, 254, 68, 254, 68, 254, 72, 254, 68, 254, 70, 254, 72, 254, 70, 254, 68, 254, 63, 254, 63, 254, 67, 254, 63, 254, 67, 254, 70, 254, 68, 254, 67, 254, 65, 254, 65, 254, 68, 254, 70, 254, 68, 254, 70, 254, 68, 254, 63, 254, +pattern 9.2: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, +pattern 10.0: +36, 254, 36, 254, 39, 254, 36, 254, 36, 254, 36, 254, 39, 254, 36, 254, 39, 254, 39, 254, 43, 254, 39, 254, 39, 254, 39, 254, 43, 254, 39, 254, 34, 254, 34, 254, 38, 254, 34, 254, 34, 254, 34, 254, 41, 254, 38, 254, 36, 254, 36, 254, 39, 254, 36, 254, 36, 254, 255, 255, 255, 255, 255, 255, +pattern 10.1: +60, 254, 60, 254, 60, 254, 60, 254, 63, 254, 60, 254, 255, 255, 60, 254, 63, 254, 63, 254, 67, 254, 63, 254, 65, 254, 67, 254, 65, 254, 63, 254, 58, 254, 58, 254, 62, 254, 58, 254, 62, 254, 65, 254, 63, 254, 62, 254, 60, 254, 60, 254, 63, 254, 65, 254, 58, 254, 255, 255, 255, 255, 64, 255, +pattern 10.2: +48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, 48, 255, 255, 255, + + +*/ diff -r 000000000000 -r acb5694e93d9 peluce/peluce Binary file peluce/peluce has changed diff -r 000000000000 -r acb5694e93d9 peluce/planes.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/planes.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,110 @@ +#include "pwpdemo.h" + +u8 psychtab0[64]= +{ + 0x00,0x00,0x00,0x04,0x04,0x40,0x40,0x44,0x44,0x4c,0xc4,0xc4,0xcc,0xcc, + 0xca,0xac,0xfa,0xef,0xec,0xce,0xcc,0xc4,0x4c,0x44,0x40,0x04,0x00,0x00, + 0x00,0x04,0x06,0x60,0x66,0x6e,0xe6,0xee,0xef,0xfe,0xaf,0xfa,0xaa,0xea, + 0xee,0xea,0xae,0xaa,0xa3,0x3a,0x33,0x32,0x23,0x22,0x20,0x02,0x08,0x00, + + 0x08,0x07,0x77,0x78,0x08,0x00,0x01 +}; + +u8 psychtab1[64]= +{ + 0x04,0x06,0x0e,0x6e,0xe6,0xee,0xe6,0x6e,0x60,0x06,0x00,0x01,0x10,0x15, + 0x51,0x55,0x5d,0xd5,0xdd,0xd5,0x5d,0x55,0x51,0x15,0x11,0x1e,0xe1,0xee, + 0xef,0xfe,0xff,0xfe,0xef,0xee,0xea,0xae,0xaa,0xa2,0x2a,0x20,0x02,0x00, + 0x00,0x02,0x20,0x22,0x2e,0xe2,0xee,0xea,0xaa,0xa2,0x2a,0x20,0x02,0x01, + 0x03,0x30,0x31,0x35,0x53,0x50,0x05 +}; + +u8 psychtab2[64]= +{ + 0x00,0x08,0x07,0x87,0x78,0x87,0x88,0x07,0x08,0x08,0x00,0x00,0x00,0x00, + 0x01,0x03,0x30,0x33,0x03,0x03,0x01,0x09,0x19,0x19,0x91,0x91,0x99,0x99, + 0x9c,0x99,0x91,0x19,0x1c,0x13,0x31,0x33,0x31,0x03,0x03,0x00,0x00,0x00, + 0x04,0x40,0x44,0x04,0x04,0x04,0x00,0x04,0x40,0x4e,0x40,0x04,0x00,0x04, + 0x05,0x05,0x04,0x04,0x00,0x00,0x00 +}; + +void planes_draw(u8*map,int angle,int midpt) +{ + register u8*d=pwplib.videobuf.d; + + register int x; + + register int du=(SIN(angle)*MIN(pwplib.videobuf.width,pwplib.videobuf.height))/4096; + + int dv=(COS(angle)*pwplib.videobuf.height)/6666; + + register int i=midpt*256-(pwplib.videobuf.height>>1)*dv + -(pwplib.videobuf.width>>1)*du; + + int y=pwplib.videobuf.height; + + dv-=du*pwplib.videobuf.width; + + for(;y;y--) + { + for(x=pwplib.videobuf.width;x;x--) + { + *d++=map[(i>>8)&255]; + i+=du; + } + i+=dv; + } +} + +void xorplanes_draw(u8*map,int angle,int angle2,int midpt,int midpt2) +{ + register u8*d=pwplib.videobuf.d; + + register int x; + + register int du=(SIN(angle)*MIN(pwplib.videobuf.width,pwplib.videobuf.height))/4096, + du2=(SIN(angle2)*MIN(pwplib.videobuf.width,pwplib.videobuf.height))/4096; + + int dv=(COS(angle)*pwplib.videobuf.height)/6666, + dv2=(COS(angle2)*pwplib.videobuf.height)/6666; + + register int i=midpt*256-(pwplib.videobuf.height>>1)*dv + -(pwplib.videobuf.width>>1)*du, + j=midpt2*256-(pwplib.videobuf.height>>1)*dv2 + -(pwplib.videobuf.width>>1)*du2; + + int y=pwplib.videobuf.height; + + for(;y;y--) + { + int ii=i,jj=j; + for(x=pwplib.videobuf.width;x;x--) + { + *d++=map[(ii>>8)&255]^map[(jj>>8)&255]; + ii+=du;jj+=du2; + } + i+=dv;j+=dv2; + } +} + + +void planes_do(int t,int m) +{ + u8*tabbu[3]={psychtab0,psychtab1,psychtab2}; + u8 map[256]; + u8*tabu=tabbu[m&15]; + + int step=1024,i,j=-t*80; + + for(i=0;i<128;i++) + { + map[i]=map[255-i]=tabu[(j>>8)&63]; + j+=step; + + step-=(step>>4); + } + + if(m&16) + planes_draw(map,t,SIN(t)/512);else + xorplanes_draw(map,t,t*3/11,SIN(t)/512,SIN(t*2.376)/1024); +} diff -r 000000000000 -r acb5694e93d9 peluce/pwpdemo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/pwpdemo.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,13 @@ +#include +#include +#include +#include +#include + +#include "../pwplib/pwplib.h" + +#define SIN(a) (sin((a)*3.1415926/128)*32767) +#define COS(a) ((3.1415926/2)+(cos((a)*3.1415926/128))*32767) + +#define MAX(a,b) ((a)>(b)?(a):(b)) +#define MIN(a,b) ((a)<(b)?(a):(b)) diff -r 000000000000 -r acb5694e93d9 peluce/spritegen.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/spritegen.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,1032 @@ +#include +#include + +/* no tehdään seellä sitten perkele kun ei perli osaa toimia loogisesti +*/ + +unsigned char tab[256][4]; + +sprite(unsigned const char*name, + unsigned const char*cols, + unsigned const char*data) +{ + int height=0,width=0; + + {unsigned const char*s=data;int thiswidth=0; + while(*s) + { + if(*s=='\n') + { + if(thiswidth>width)width=thiswidth; + height++; + thiswidth=0; + } + else thiswidth++; + s++; + }} + + {unsigned char*s=cols; + while(*s) + { + int c=s[0]; + tab[c][0]=s[1]; + tab[c][1]=s[2]; + tab[c][2]=s[3]; + tab[c][3]=s[4]; + s+=6; + } + } + + + printf("u8 %s_pict[]={\n",name); + + {unsigned const char*s=data;int thiswidth=0; + while(*s) + { + if(*s=='\n') + { + while(thiswidth +#include + +#include "pwpdemo.h" + +typedef struct +{ + int width,height; + u8*pict; + u8*mask; +}sprite; + +#include "sprites.h" + +/* +void rotozoom(int x0,int y0, + char*map,int dim,int angle,int zoom) +{ + int du,dv,u,v,x,y,xdim,ydim; + char*d=pwplib.videobuf.d; + + {int xp0,yp0; + dim=(dim*zoom)>>8; + + if(x0+dim>pwplib.videobuf.width) + xdim=pwplib.videobuf.width-x0;else xdim=dim; + + if(y0+dim>pwplib.videobuf.height) + ydim=pwplib.videobuf.height-y0;else ydim=dim; + + if(x0<0){xdim+=x0;xp0=-dim-x0; x0=0;}else xp0=-dim; + if(y0<0){ydim+=y0;yp0=-dim-y0; y0=0;}else yp0=-dim; + + if(xdim<=0 || ydim<=0)return; + + du=sin(angle/256.0)*zoom; + dv=cos(angle/256.0)*zoom; + + u=-du*xp0-dv*yp0; + v=-dv*xp0+du*yp0; + } + + {int duo=-dv-du*xdim, + dvo= du-dv*xdim, + mod=pwplib.videobuf.width-xdim; + + d+=ydim*pwplib.videobuf.width+xdim; + + for(y=ydim;y;y--) + { + for(x=xdim;x;x--) + { + int ptr=(u&~0xff)+(v>>8); + + *d=(*d&map[ptr])|map[ptr+128]; + d++; + u+=du; + v+=dv; + } + + u+=duo; + v+=dvo; + d+=mod; + } + } +} +*/ + +void zoomsprite(int x0,int y0,sprite*sp,int xzoom,int yzoom) +{ + int xdim,ydim, + xo0=0,yo0=0,x,y,ptr; + + if(xzoom<=32 && yzoom<=32)return; + + xdim=(sp->width<<8)/xzoom; + ydim=(sp->height<<8)/yzoom; + + x0-=(xdim>>1); + y0-=(ydim>>1); + + if(x0<0) + { + xdim+=x0; + xo0=(0-x0)<<8; + x0=0; + } + + if(y0<0) + { + ydim+=y0; + yo0=(0-y0)<<8; + y0=0; + } + + if(x0+xdim>=pwplib.videobuf.width) + { + xdim=pwplib.videobuf.width-x0; + } + + if(y0+ydim>=pwplib.videobuf.height) + { + ydim=pwplib.videobuf.height-y0; + } + + if(xdim<=0 || ydim<=0) return; + + {u8*d=pwplib.videobuf.d+x0+y0*pwplib.videobuf.width; + + for(y=0;y>8)*sp->width; + int xo=xo0; + + {u8*dd=d; + for(x=xdim;x;x--) + { + int a=*dd,z=linebase+(xo>>8); + *dd=(a&sp->mask[z])|sp->pict[z]; + xo+=xzoom; + dd++; + }} + yo0+=yzoom; + d+=pwplib.videobuf.width; + }} +} + +void zoomsprite_gen(int x0,int y0,sprite*sp,int zoom) +{ + zoomsprite(((x0+128)*pwplib.videobuf.width)>>8, + ((y0+128)*pwplib.videobuf.height)>>8, + sp, + abs((zoom<<8)/pwplib.videobuf.width), + abs((zoom<<7)/pwplib.videobuf.height) + ); +} + +void metsae(int t,int mode) +{ + int i,x; + + const sprite*mo[]={&kuusi}; + const int mosiz[]={128}; + const int mostep[]={64}; + + for(i=0;i<512;i+=mostep[mode]) + { + zoomsprite_gen( + ((i-t/3)&511)-256 ,0,mo[mode],mosiz[mode]); + } +} + +void drawkiller(int tminus) +{ + int ttt=tminus; + + if(tminus<-64)tminus=-64;else + if(tminus>0)tminus=0; + + zoomsprite_gen(tminus,48,(ttt&16)?&pelustna0:&pelustna1,80); +} + +void encounter(int tminus,int kode,int zoom,int speed) +{ + int ttt=tminus; + sprite*pum[][2]= + { + &krist0,&krist1, + &pelusieni,&pelusieni, + &pelusieni1,&pelusieni1, + &pelusieni2,&pelusieni2, + &pelux,&pelux, + &pelustna0,&pelustna1, + &ruumis,&ruumis, + &uusmed0,&uusmed1, + &tesno0,&tesno1, + &army0,&army0, + &windows0,&windows1, + &quake0,&quake0 + }; + + if(ttt<0)ttt=0; + + zoomsprite_gen(0+ttt,48,(tminus&16)?pum[kode][0]:pum[kode][1],zoom); +} + +void pelubounce(int t,int bouncemode) +{ + const unsigned char bfunc[32]={ + 32,32,32,36,38,40,42,44,50,60,61,62,62,63,63,63, + 63,63,63,62,61,60,50,40,32,33,34,35,34,33,32,32 + }; + const sprite*poo[3]={&peluface0,&peluface1,&peluface2}; + + zoomsprite_gen(0,0,bouncemode?&sieni:poo[(t>>6)%3],40+((t-2560)&63)); +} + +void blaah(int t) +{ + int x0=0, + y0=0, + z0=300+(sin(t/70.8)*300); + + zoomsprite_gen(x0,y0,(t&16)?&krist0:&krist1,z0); +} + + +/*****************************/ + +/* + for(y=0;y>4)*32*256); + {int x=pwplib.videobuf.width;for(;x;x--)*d++=texture1[((ofz+=dofz)>>8)&1023];} + k-=(k>>3); + } +} + +*/ diff -r 000000000000 -r acb5694e93d9 peluce/sprites.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peluce/sprites.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,1616 @@ +/* +u8 kuusi_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x22,0x22,0x02,0x22,0x22,0x22,0x22,0x02,0x00,0x00, +0x00,0x00,0x02,0x22,0x22,0x02,0x22,0x22,0x22,0x22,0x22,0x00,0x00, +0x00,0x00,0x22,0x22,0x02,0x02,0x22,0x22,0x22,0x22,0x22,0x22,0x00, +0x00,0x22,0x00,0x02,0x22,0x00,0x22,0x22,0x02,0x02,0x22,0x22,0x22, +0x00,0x02,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00, +0x00,0x00,0x00,0x22,0x22,0x22,0x06,0x22,0x22,0x22,0x02,0x22,0x00, +0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x06,}; +u8 kuusi_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x01,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x01,0x01,0x01,0x01,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x00,0xff,0xff, +0xff,0xff,0x00,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0xff,0xff, +0xff,0xff,0x01,0x01,0x28,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0xff, +0xff,0x01,0xff,0x28,0x01,0xff,0x01,0x01,0x28,0x28,0x01,0x01,0x01, +0xff,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff, +0xff,0xff,0xff,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x28,0x01,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0x28,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; +sprite kuusi={ +13,13,kuusi_pict,kuusi_mask}; +*/ + +u8 pelusieni_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x88,0x88,0x88,0x88,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x77,0x44,0x44,0x44,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x77,0x44,0x44,0x44,0x77,0x77,0x44,0x44,0x44,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x77,0x44,0x44,0x44,0x77,0x44,0x44,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x77,0x44,0x44,0x44,0x44,0x44,0x44,0x77,0x77,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x08,0x66,0x66,0x66,0x66,0x44,0x77,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x44,0x44,0x44,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x77,0x44,0x44,0x44,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,}; +u8 pelusieni_mask[]={ +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x88,0x01,0x01,0x01,0x01,0x00,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0xff,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,}; +sprite pelusieni={ +31,38,pelusieni_pict,pelusieni_mask}; + +u8 peluface0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x88,0x88,0x00,0x88,0x88,0x88,0x88,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00, +0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,}; +u8 peluface0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff, +0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,}; +sprite peluface0={ +24,23,peluface0_pict,peluface0_mask}; + +u8 peluface1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,}; +u8 peluface1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,}; +sprite peluface1={ +23,23,peluface1_pict,peluface1_mask}; + +u8 peluface2_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,}; +u8 peluface2_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,}; +sprite peluface2={ +23,23,peluface2_pict,peluface2_mask}; + +u8 krist0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x13,0x13,0x13,0x00,0x00, +0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x13,0x13,0x13,0x13,0x13,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x13,0x19,0x19,0x77,0x77,0x13,0x77,0x19,0x00,0x00, +0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xe6,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x00,0x00, +0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xe6,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +}; +u8 krist0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x88,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +}; +sprite krist0={ +30,39,krist0_pict,krist0_mask}; + +u8 krist1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x19,0x19,0x19,0x13,0x13,0x13,0x00,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x13,0x13,0x13,0x13,0x13,0x00,0x00, +0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x13,0x19,0x77,0x77,0x77,0x13,0x77,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x00,0x00,0x88,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00, +0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xe6,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xe6,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x13,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +}; +u8 krist1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x88,0x88,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +}; +sprite krist1={ +30,40,krist1_pict,krist1_mask}; + + + + + + + + +u8 kuusi_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x20,0x02,0x00,0x20,0x00,0x00,0x02,0x02,0x00,0x00,0x00, +0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x02,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00, +0x02,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x06,}; +u8 kuusi_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x08,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xff,0xff, +0xff,0xff,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0xff,0xff,0xff,0xff, +0x00,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0x01,0x00,}; +sprite kuusi={ +13,13,kuusi_pict,kuusi_mask}; + + +u8 pelux_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x88,0x88,0x88,0x88,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 pelux_mask[]={ +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +}; +sprite pelux={ +25,36,pelux_pict,pelux_mask}; + +u8 sieni_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xff,0xff,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x44,0x44,0x44,0x44,0x44,0xff,0xff,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00, +0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xff,0x44,0x44,0x44,0x44,0x44,0xff,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00, +0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xff,0x44,0x44,0x44,0x44,0x44,0xff,0xff,0x44,0x44,0x44,0x44,0x44,0x00,0x00, +0x44,0x44,0x44,0xff,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xff,0xff,0x44,0x44,0x44,0x00, +0x44,0x44,0x44,0xff,0xff,0x44,0xff,0x44,0x44,0x44,0x44,0xff,0xff,0x44,0x44,0x44,0x44,0x44,0xff,0x44,0x44,0x44,0x44, +0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00, +0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00, +0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x87,0x87,0x87,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x00,0x87,0x87,0x87,0x87,0x87,0x87,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x87,0x87,0x87,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x87,0x87,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x87,0x87,0x87,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x87,0x87,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x87,0x87,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x87,0x87,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 sieni_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +}; +sprite sieni={ +23,19,sieni_pict,sieni_mask}; + + +u8 pelusieni2_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x88,0x88,0x88,0x88,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x44,0x77,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x77,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,}; +u8 pelusieni2_mask[]={ +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,}; +sprite pelusieni2={ +29,38,pelusieni2_pict,pelusieni2_mask}; + +u8 pelusieni1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x88,0x88,0x88,0x88,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xee,0xee,0xee,0xee,0xee,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x77,0x44,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x44,0x77,0x44,0x44,0x44,0x77,0x77,0x44,0x44,0x44,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x44,0x44,0x44,0x44,0x77,0x44,0x44,0x44,0x77,0x44,0x44,0x44,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x44,0x44,0x08,0x66,0x66,0x66,0x66,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x66,0x66,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x77,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,}; +u8 pelusieni1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x01,0x01,0x01,0x01,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x01,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x01,0x01,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,}; +sprite pelusieni1={ +29,38,pelusieni1_pict,pelusieni1_mask}; + +u8 pelustna0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0xa0,0xa0,0x00,0xa0,0xa0,0xa0,0xa0,0x00,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x7f,0x66,0x7f,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x8c,0x8c,0x66,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x66,0x66,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; +u8 pelustna0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x01,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; +sprite pelustna0={ +25,38,pelustna0_pict,pelustna0_mask}; + +u8 pelustna1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0xa1,0xa1,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa1,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x77,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7f,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x66,0x66,0x7f,0x66,0x7f,0x66,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x8c,0x8c,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x66,0x66,0x8c,0x8c,0x8c,0x8c,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x8c,0x8c,0x8c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x8c,0x8c,0x8c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x66,0x66,0x00,0x8c,0x8c,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x7f,0x7f,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,}; +u8 pelustna1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0xff,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0x33,0x33,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x01,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x01,0x01,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x01,0x01,0x01,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0xff,0x01,0x01,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}; +sprite pelustna1={ +25,38,pelustna1_pict,pelustna1_mask}; + +u8 ruumis_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x4c,0x44,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x4c,0x44,0x44,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x4c,0x44,0x4c,0x44,0x44,0x44,0x4c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x44,0x44,0x4c,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x4c,0x44,0x4c,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x44,0x44,0x44,0x4c,0x44,0x44,0x44,0x4c,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x4c, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x44,0x4c,0x44,0x4c,0x44,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x44,0x4c,0x44,0x44,0x4c, +0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x44,0x4c,0x44,0x44,0x4c,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x44,0x44,0x4c,0x44,0x44,0x4c,0x44,0x44,0x4c, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x44,0x44,0x4c,0x44,0x44,0x44,0x44,0x4c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x4c,0x44,0x44,0x44,0x44,0x4c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x4c,0x44,0x4c,0x00,0x00,0x00,0x00,0x00, +}; +u8 ruumis_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +}; +sprite ruumis={ +19,17,ruumis_pict,ruumis_mask}; + + +u8 uusmed0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x77,0x66,0x77,0x66,0x77,0x66,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00,0x00,0x77,0x66,0x66,0x66,0x66,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 uusmed0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +}; +sprite uusmed0={ +17,38,uusmed0_pict,uusmed0_mask}; + +u8 uusmed1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x77,0x66,0x77,0x66,0x77,0x66,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x00,0x00,0x00, +0x00,0x00,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x66,0x66,0x66,0x66,0x00,0x00,0x00, +0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 uusmed1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +}; +sprite uusmed1={ +17,38,uusmed1_pict,uusmed1_mask}; + +u8 army0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6e,0x77,0x6e,0x77,0x6e,0x77,0x6e,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x77,0x77,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00, +0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x77,0x77,0x77,0x77,0x87,0x87, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x77,0x77,0x77,0x87,0x87,0x87,0x87, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x2b,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2b,0x2b,0x2b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00, +}; +u8 army0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +}; +sprite army0={ +17,36,army0_pict,army0_mask}; + +u8 tesno0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x77,0x66,0x77,0x66,0x77,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77, +0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00,0x00,0x77,0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 tesno0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +}; +sprite tesno0={ +22,38,tesno0_pict,tesno0_mask}; + +u8 tesno1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x66,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x77,0x66,0x77,0x66,0x77,0x66,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x66,0x66,0x66,0x66,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x77,0x77,0x77,0x00, +0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 tesno1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0xff,0x08,0xff,0x08,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0xff,0x08,0xff,0x08,0xff,0x08,0x08,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +}; +sprite tesno1={ +20,37,tesno1_pict,tesno1_mask}; + +u8 windows0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x08,0x08,0x77,0x77,0x08,0x08,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x08,0x08,0x77,0x77,0x08,0x08,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x77,0x77,0x77, +0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77, +0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00, +0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x66,0x77,0x77,0x66,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0xfe,0x66,0x66,0x66,0x66,0xfe,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0xfe,0x66,0xfe,0xfe,0x66,0xfe,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 windows0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00, +0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +}; +sprite windows0={ +24,36,windows0_pict,windows0_mask}; + +u8 windows1_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x08,0x08,0x77,0x77,0x08,0x08,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x08,0x08,0x77,0x77,0x08,0x08,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x77,0x77,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x66,0xfe,0x66,0x66,0x66,0x66,0xfe,0x66,0x00,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x66,0xfe,0x66,0xfe,0xfe,0x66,0xfe,0x66,0x00,0x00,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x66,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0x66,0x00,0x00,0x00,0x77,0x77,0x77,0x00, +0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x77,0x77,0x77, +0x00,0x77,0x77,0x77,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +}; +u8 windows1_mask[]={ +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x08,0x08,0x08,0x08,0x08,0x08,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x00,0x00,0xff, +0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +}; +sprite windows1={ +23,36,windows1_pict,windows1_mask}; + +u8 quake0_pict[]={ +0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x00,0x00,0x00,0x00,0x00, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00, +0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x11,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x11,0xff,0x11,0x11,0x11,0x77,0x77,0x77,0x77,0x77,0x00,0x00, +0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x44,0x44,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x00,0x00,0x00,0x00, +}; +u8 quake0_mask[]={ +0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, +}; +sprite quake0={ +16,27,quake0_pict,quake0_mask}; diff -r 000000000000 -r acb5694e93d9 pwplib/Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/Makefile.in Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,19 @@ +################################################## + +OBJS=pwplib.o snd-w32.o win32con.o setup.o gb.o \ + locale.o convert.o attrconv.o rastconv.o tty.o \ + sdl.o linuxcon.o snd-sdl.o snd-oss.o snd-hpux.o lossy.o pvp.o \ + glyphgen.o colorterm.o decterm.o dumbterm.o + +all: ../pwplib.a + +### pwplib ####################################### + +../pwplib.a: $(OBJS) + $(AR) r ../pwplib.a $(OBJS) + +### pwplib stuff ################################# + +clean: + rm -f *.o *~ ../pwplib.a + diff -r 000000000000 -r acb5694e93d9 pwplib/X11.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/X11.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,416 @@ +/*** HEADERS **********************************************/ + +#include "config.h" + +#ifdef DRIVE_X11 + +#include "pwplib.h" + +#include +#include + +#include +#include + +#ifdef DRIVE_X11SHM +# include +# include +# include +#endif + +#define PWP_XWINNAME "pwplib" + +#define BUFFSIZE(w,h,d) ( (((d)+7)>>3) *(w)*(h)) + +/*** INTERNAL DRIVER DATA *********************************/ + +struct +{ + u8*buf; + int bufw,bufh,bufd,bpvl; + + Display *disp; + Visual *vis; + GC gc; + int win,scr,rootw,dummyw; + XImage *im; + + char*winname; + Colormap cmap; + XColor cols[256]; + +#ifdef DRIVE_X11SHM + XShmSegmentInfo ssi; +#endif + struct{ + int w,h; + }savedmode; + + struct{ + int useXShm; + }opt; + + u32 lookup[256]; +}pwp_X11; + +/*** SMALL API FUNX ****************************************/ + +void pwp_X11_setpalette(int*pal,int colorcount) +{ + int*p=pal,i;XColor*c=pwp_X11.cols; + for(i=colorcount;i;i--){ + c->red=(*p++<<8); + c->green=(*p++<<8); + c->blue=(*p++<<8); + c++; + } + XStoreColors(pwp_X11.disp,pwp_X11.cmap,pwp_X11.cols,colorcount); + XSync(pwp_X11.disp,False); +} + +void pwp_X11_blit() +{ + if(!pwp_X11.opt.useXShm) + { + +/**** + + if((pwp_X11.opt.interlaced)||(pwp_X11.opt.halvescans)) + { + int y1=(frame&1)<depths;int i=0; + #ifdef DEBUG + fprintf(stderr,"testing for depth %i\n",depth); + #endif + for(;indepths;i++) + if(d[i].depth==depth)return 1; + return 0; +} + +#ifdef DRIVE_X11SHM +int pwp_X11_ready_XShm() +{ + pwp_X11.im=XShmCreateImage( + pwp_X11.disp,pwp_X11.vis,pwp_X11.bufd, + ZPixmap, NULL,&pwp_X11.ssi, + pwp_X11.bufw,pwp_X11.bufh + ); + if(pwp_X11.im==NULL)return 0; + + pwp_X11.bufh=pwp_X11.im->height; + pwp_X11.bufw=pwp_X11.im->width; + pwp_X11.bpvl=pwp_X11.im->bytes_per_line; + + pwp_X11.ssi.shmid=shmget(IPC_PRIVATE, + pwp_X11.im->bytes_per_line*pwp_X11.im->height, + IPC_CREAT|0777); + if(pwp_X11.ssi.shmid<0){ + XDestroyImage(pwp_X11.im);return 0;} + + pwp_X11.im->data=pwp_X11.buf=pwp_X11.ssi.shmaddr= + shmat(pwp_X11.ssi.shmid,0,0); + + if(pwp_X11.ssi.shmaddr==(void*)-1){ + XDestroyImage(pwp_X11.im);return 0;} + + pwp_X11.ssi.readOnly=False; + + /* XSetErrorHandler. Ei tänne */ + + XShmAttach(pwp_X11.disp,&pwp_X11.ssi); + XSync(pwp_X11.disp,False); + + shmctl(pwp_X11.ssi.shmid,IPC_RMID,0); + return 1; +} +#endif + +void pwp_X11_close() +{ + +#ifdef DRIVE_X11SHM + if(pwp_X11.opt.useXShm){ + XShmDetach(pwp_X11.disp,&pwp_X11.ssi); + shmdt(pwp_X11.ssi.shmaddr);} +#endif + XDestroyImage(pwp_X11.im); + XDestroyWindow(pwp_X11.disp,pwp_X11.win); +} + +int pwp_X11_ready() +{ +/* color depth */ + if(!pwp_X11_testdepth(pwp_X11.bufd)) + { + if(pwp_X11_testdepth(8)) pwp_X11.bufd=8;else + if(pwp_X11_testdepth(16))pwp_X11.bufd=16;else + if(pwp_X11_testdepth(15))pwp_X11.bufd=15;else + { pwpwrite("No suitable depth available (8/15/16 bpp)\n"); + return 0; + } + } + + if(pwp_X11.bufd==8)pwp_X11_getcolormap(); + + pwp_X11_openwindow(); + + pwp_regdestr(pwp_X11_close); + +/* shared memory buffer */ + #ifdef DRIVE_X11SHM + if(pwp_X11.opt.useXShm){ + pwp_X11.opt.useXShm=XShmQueryExtension(pwp_X11.disp); + /* tarkista myös versiosta pixmaps==true */ + if(pwp_X11.opt.useXShm) + if(pwp_X11_ready_XShm())return; + else{ + pwp_X11.opt.useXShm=0; + fprintf(stderr,"no xshm\n");} + } + #endif + +/* noxshm */ + fprintf(stderr, + "X11_buf: %d x %d x %d, videobuf = %d x %d, malloc: %d\n", + pwp_X11.bufw,pwp_X11.bufh,pwp_X11.bufd, + pwplib.videobuf.width,pwplib.videobuf.height, + BUFFSIZE(pwp_X11.bufw,pwp_X11.bufh,pwp_X11.bufd)); + + pwp_X11.buf=malloc(BUFFSIZE(pwp_X11.bufw,pwp_X11.bufh,pwp_X11.bufd)); + + pwp_X11.im=XCreateImage( + pwp_X11.disp,pwp_X11.vis, + pwp_X11.bufd,ZPixmap, + 0,pwp_X11.buf, + pwp_X11.bufw,pwp_X11.bufh, + 32,BUFFSIZE(1,pwp_X11.bufw,pwp_X11.bufd)); + + pwp_X11.bpvl=pwp_X11.im->bytes_per_line; /* ? */ + + return 1; +} + +/* + pwp_X11.opt.useXShm=!findarg(argc,argv,"-noxshm"); + + pwp_X11.opt.fullscreen=findarg(argc,argv,"-full"); +*/ + +/**************************************************************************/ + +void pwp_X11_dump_rast_4x4() +{ + u32*d = (u32*)pwp_X11.buf; + int x,y,j=0; + u8*ss=(u8*)pwplib.videobuf.d; + + for(y=pwplib.videobuf.height*2;y;y--) + { + u8*s=ss; + + for(x=pwplib.videobuf.width;x;x--) + { + *d++=pwp_X11.lookup[*s++]; + } + j=(j+1)&1; + if(!j) { ss+=pwplib.videobuf.width; } + } + + pwp_X11_blit(); +} + +/**********/ + +void rast2rgb(int n,int muller,int*r,int*g,int*b) +{ + int fg=n&15,bg=(n>>4)&15; + const char rgb[16*3] = + { 0,0,0, + 0,0,9, + 0,9,0, + 0,9,9, + 9,0,0, + 9,0,9, + 9,9,0, + 9,9,9, + 6,6,6, + 0,0,15, + 0,15,0, + 0,15,15, + 15,0,0, + 15,0,15, + 15,15,0, + 15,15,15 }; + + *r = (muller * (rgb[bg*3+0]*2 + rgb[fg*3+0]))/45; + *g = (muller * (rgb[bg*3+1]*2 + rgb[fg*3+1]))/45; + *b = (muller * (rgb[bg*3+2]*2 + rgb[fg*3+2]))/45; +} + +void pwp_X11_init_8bpp() +{ + int pal[256*3]; + int i=0; + for(;i<256;i++) + { + rast2rgb(i,255,pal+i*3,pal+i*3+1,pal+i*3+2); + pwp_X11.lookup[i]=(i|(i<<8)|(i<<16)|(i<<24)); + } + + pwp_X11_setpalette(pal,256); + + pwplib.dump_rast = pwp_X11_dump_rast_4x4; +} + +int pwp_X11_init() +{ + if(!(pwp_X11.disp=XOpenDisplay(NULL))) + { + pwpwrite("* no X11 available - trying tty\n"); + + return 0; + } + + pwp_X11.scr=DefaultScreen(pwp_X11.disp); + pwp_X11.rootw=DefaultRootWindow(pwp_X11.disp); + pwp_X11.gc=DefaultGC(pwp_X11.disp,pwp_X11.scr); + pwp_X11.vis=DefaultVisual(pwp_X11.disp,pwp_X11.scr); + + +/* +pwp_X11.opt.halvescans = 0; +pwp_X11.opt.interlace = 0; +*/ + + /****/ + + pwp_X11.bufw = 640; + pwp_X11.bufh = 480; + + pwplib.videobuf.width = 640/4; + pwplib.videobuf.height = 480/4; + + pwp_X11.opt.useXShm = 0; + + /****/ + + if(!pwp_X11_ready()) return 0; + + if(pwp_X11.bufd==8) + pwp_X11_init_8bpp(); + else { pwpwrite("* no 8bpp available\n"); return 0; } + + pwpwrite("* X11\n"); + + return 1; +} + + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/attrconv.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/attrconv.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,376 @@ +#include +#include + +#include "pwplib.h" +#include "convert.h" + +/* + * Doubleheight IBM + * + */ + +void convcalc_1to12() /* &1 == ibm2ibm, */ +{ + u8 tabsrc[]= + { + '\"', '\"',' ', + '/', '|','/', + '\'', '\'',' ', + '/', '|', '/', + + '\\', '\\','|', + '^', '^', ' ', + + '`', '`', ' ', + + '|', '|', '|', + '~', '~', ' ', + + 176, 176, 176, + 177, 177, 177, + 178, 178, 178, + + 179, 179, 179, + 180, 179, 180, + 181, 179, 181, + 182, 186, 182, + 185, 186, 185, + 186, 186, 186, + 188, 186, 188, + 189, 186, 189, + 190, 179, 190, + 192, 179, 192, + 193, 179, 193, + 195, 179, 195, + 197, 179, 197, + 198, 179, 198, + 199, 186, 199, + 200, 186, 200, + 202, 186, 202, + 204, 186, 204, + 206, 186, 206, + 207, 179, 207, + 208, 186, 208, + 211, 186, 211, + 212, 179, 212, + 215, 186, 215, + 216, 179, 216, + 217, 179, 217, + + 219, 219, 219, + 220, 32, 219, + 221, 221, 221, + 222, 222, 222, + 223, 219, 32, + 0 + }; + u8*t=tabsrc; + + int i=0; + + for(;i<256;i++) + { + pwpconv.tab1to12[i]=BYTES2(pwpconv.font[i],32); + } + + while(*t) + { + pwpconv.tab1to12[*t]=BYTES2(pwpconv.font[t[2]],pwpconv.font[t[1]]); + t+=3; + } +} + +void conv_1to12(u8*d,u8*s,int w,int h) +{ + w<<=1; + for(;h;h--) + { + int x=w>>1; + for(;x;x--) + { + int a=pwpconv.tab1to12[*s]; + + d[0]=SECONDBYTE(a); + d[w]=FIRSTBYTE(a); + d[1]=d[w+1]=s[1]; + + d+=2; + s+=2; + } + d+=w; + } +} + +/* + * Megatab (ibm color16x16 => any) initialization + * + * + */ + +/* + * purely font/charset related + */ + +void convcalc_ascii() +{ + memcpy(pwpconv.font, + /*00*/ " OOwoxAoooo6qrn*" + /*10*/ "><8!PS_8^v>?" + /*40*/ "@ABCDEFGHIJKLMNO" + /*50*/ "PQRSTUVWXYZ[\\]^_" + /*60*/ "`abcdefghijklmno" + /*70*/ "pqrstuvwxyz{|}~A" + /*80*/ "CueaaaaceeeiiiAA" + /*90*/ "E&&ooouuyOUcEVPf" + /*A0*/ "aiounNao?--%%!<>" + /*B0*/ "%#M||||..||.'''." + /*C0*/ "`--|-+||`.--|-+-" + /*D0*/ "---``-.++'.8opd^" + /*E0*/ "aBrhEouiO0Od-%EA" + /*F0*/ "=+><|J%~o-.Vn2o ",256*sizeof(char)); +} + +void convcalc_termsafe() +{ + int i=256;u8*s=pwpconv.font; + for(;i;i--) + { + if(*s<32 || *s==127)*s=32; + s++; + } +} + +/* + * purely colortab related + */ + +void convcalc_monotab(int parms) +{ + memset(pwpconv.col,(parms&1)?0x00:0x07,256*sizeof(u8)); +} + +void convcalc_monotab_attr(int parms) +{ + u8 attrmo[2][2]= /* &1: 0=ansicol_dump, 1=vt_dump */ + { + 0x00,0x01, + 0x07,0x70 + }; + + const char intens[16]= + { + 0,1,6,7, 3,4,9,10, + 1,2,9,10,5,6,13,15 + }; + + int i=0; + for(;i<256;i++) + pwpconv.col[i]= + attrmo[parms&1][intens[i&15]>intens[(i>>4)&15]?0:1]; +} + +void convcalc_colortab(int parms) +{ + int i; + char tabs[32]; + + for(i=0;i<32;i++)tabs[i]=i&15; + + if(parms&1){ /* 8 colors in foreground, else 16 */ + memcpy(tabs+8, "\003\003\002\003\004\005\006\007",8); + } + + if(parms&2) /* 8 colors in background, else 16 */ + memcpy(tabs+24, "\003\003\002\003\004\005\006\007",8); + + if(parms&4) /* ansi color order (bgr) instead of cga (rgb) */ + for(i=0;i<32;i++) + tabs[i]=(tabs[i]&~7)| + "\000\004\002\006\001\005\003\007"[tabs[i]&7]; + + for(i=0;i<256;i++) + pwpconv.col[i]=tabs[i&15]|(tabs[16+((i>>4)&15)]<<4); +} + +/* + * finishing the megatab + */ + +/* + 1: eliminate 178/219 (if inverse supported & 178/219 doesnt exist) + 2: eliminate halfblocks (if chars, preferably if we have rasterchar && fullres) + 4: replace rasters (if no bgcolors or no colors at all? smwhr else?) + 8: sometimes repl 176 with 177 (if only 8 colors at bg - dont use with &4) + + normal ascii rasterchars: 176='%', 177='@' + in vt100, both 176&177 are replaced with halfraster +*/ +void convcalc_megatab_finish(int flags) +{ + const char intens[16]= + { + 0,1,6,7, 3,4,9,10, + 1,2,9,10,5,6,13,15 + }; + + int ch,at; + u8*s=(u8*)pwpconv.megatab; + +# ifndef BIG_ENDIAN + for(at=0;at<256;at++) + for(ch=0;ch<256;ch++) +# else + for(ch=0;ch<256;ch++) + for(at=0;at<256;at++) +# endif + { + int fg=at&15,bg=(at>>4)&15,at1=at,ch1=ch; + + if(ch==32 || ch==0 || ch==255)fg=bg;else + if(ch==219)bg=fg; + + if(fg==bg) + { + if(fg&8) + { + ch1=219;at1=fg; + } + else + { + ch1=32;at1=fg<<4; + } + } + else + if(ch>=220 && ch<=223) + { + if((at1&128) && intens[bg]>intens[fg]) + { + ch1=223-(ch1-220); + at1=((at1>>4)&15)|((at1<<4)&0xf0); + } + if(flags&2)ch1=177; + } + else + if(ch>=176 && ch<=178) + { + if((at1&128) || intens[bg]>intens[fg]) + { + if(ch1==176)ch1=178; else + if(ch1==178)ch1=176; + + at1=((at1>>4)&15)|((at1<<4)&0xf0); + + /* flags&8: use 177 when 176 with doublebright */ + if((at1&128) && (flags&8) && (ch1==176)) + ch1=177; + } + } + + /* flags&1: eliminate 178/219 */ + if((ch1==178 || (ch1==219)) && (flags&1)) + { + ch1=(ch1==178)?176:32; + at1=((at1>>4)&15)|((at1<<4)&0xf0); + } + + /* flags&4: replace rasters (32/176/177) with something else + (replace color info with char stuff + */ + + s[0]=pwpconv.font[ch1]; + s[1]=pwpconv.col[at1]; + + s+=2; + } +} + +/*******************************/ + + +void conv_dump_ibm_megatab() +{ + TEMPMALL(u16,tmp,pwplib.videobuf.height*pwplib.videobuf.width*2), + *s=(u16*)pwplib.videobuf.d,*d=tmp; + + int i=pwplib.videobuf.height*pwplib.videobuf.width; + for(;i;i--)*d++=pwpconv.megatab[*s++]; + + {u8*pushed=pwplib.videobuf.d; + pwplib.videobuf.d=(u8*)tmp; + pwpconv.orig_dump_attr(); + pwplib.videobuf.d=pushed; + } + + TEMPFREE(tmp); +} + +void conv_fromibm_double() +{ + int lgt=pwplib.videobuf.width*pwplib.videobuf.height; + + TEMPMALL(u8,tmp,lgt*2*2); + + conv_1to12(tmp,pwplib.videobuf.d,pwplib.videobuf.width,pwplib.videobuf.height); + + {char*save=pwplib.videobuf.d; + pwplib.videobuf.d=tmp; + pwplib.videobuf.height<<=1; + conv_dump_ibm_megatab(); + pwplib.videobuf.height>>=1; + pwplib.videobuf.d=save; + } + + TEMPFREE(tmp); +} + +void conv_fromibm_half() +{ + TEMPMALL(u8,tmp,pwplib.videobuf.width*pwplib.videobuf.height), + *d=tmp,*s=pwplib.videobuf.d; + + int y; + y=pwplib.videobuf.height>>1; + + for(;y;y--) + { + int x=pwplib.videobuf.width, + w=x<<1; + for(;x;x--) + { + d[0]=pwpconv.font[s[0]]; + d[1]=s[1]|s[1+w]; + s+=2;d+=2; + } + s+=w; + } + + {char*save=pwplib.videobuf.d; + pwplib.videobuf.d=tmp; + pwplib.videobuf.height>>=1; + conv_dump_ibm_megatab(); + pwpconv.orig_dump_attr(); + pwplib.videobuf.d=save; + pwplib.videobuf.height<<=1; + } + + TEMPFREE(tmp); +} + +/* dump_ibm_halved, dump_ibm_realsize */ +void conv_dump_ibm() +{ + if(pwplib.setup[SETUP_HALVE]) + { + if(pwplib.videobuf.height==50) /* kludge */ + conv_fromibm_half(); + else conv_dump_ibm_megatab(); + } + else + { + if(pwplib.videobuf.height==50) + conv_dump_ibm_megatab(); + else conv_fromibm_double(); + } +} diff -r 000000000000 -r acb5694e93d9 pwplib/auconv.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/auconv.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,26 @@ +/* + conversions: + + * multiplex several channels to one + * enhance chip instruments with pulse stuff, adsr functions, + toneslides, vibrato etc + + sound_setins(2,VIBRATO|TONESLIDE|FASTSWEEP|SLOWDECAY); + + sound_playsample(BASSDRUM); + + sound_loadsample(5,dataptr,length); + sound_loadstream(4,streamgenerator); + + when samples supported: + + * emulate samples with chip capablities + + if channel-based sound device: + + * implement echoes with additional channels + (if using digital buffer: use another technique) + + sound_echo(delay,shift); + +*/ \ No newline at end of file diff -r 000000000000 -r acb5694e93d9 pwplib/colorterm.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/colorterm.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,198 @@ +#include "config.h" +#ifdef DRIVE_UNIX +#ifdef DRIVE_TTY + +#include +#include +#include +#include +#include + +#include "pwplib.h" +#include "tty.h" + +#ifdef howmany +# undef howmany +#endif + +#define DECIMAL(x) \ +{int n=(x); if(n>=100){*d++='0'+(n/100);n%=100; \ + *d++='0'+(n/10);} \ + else \ + if(n>=10)*d++='0'+(n/10); \ + *d++='0'+(n%10);} + +int tty_ansicol_dump(u8*s,u8*p,int x,int y) +{ + TEMPMALL(u8,tmp,x*y*16), + *d=tmp,skip=0,skipy=0,att=0; + + skipy=1; + + memcpy(d,"\33[0;37;40m",10*sizeof(char));d+=10; + att=0x07; + + if(pwplib.frame&1) + { + s+=pwplib.videobuf.width*2; + p+=pwplib.videobuf.width*2; + } + + {int i=pwplib.frame&1;for(;i>4)&7];d+=2;semic=1; + } + if(attch&0x80) + { + if(semic)*d++=';'; + if(!(a&0x80))*d++='2'; + *d++='5';semic=1; + } + if(attch&0x08) + { + if(semic)*d++=';'; + if(!(a&0x08))*d++='2'; + *d++='1'; + } + *d++='m'; + att=s[1]; + } + + if(skip||skipy) + { + if(!skipy) + { + int realskip=1; + if(skip<4) + { + int i=0; + realskip=0; + for(;i1)DECIMAL(skip); + *d++='C'; + } + else + { + int i=0; + for(;i +#include + +#include "pwplib.h" +#include "convert.h" + +extern void conv_dump_ibm(); +extern void conv_dump_rast(); + +void conv_init(int colors,int chars,int rasters) +{ + int i=0; + + if(pwplib.setup[SETUP_COLORS]>=0) + colors=pwplib.setup[SETUP_COLORS]; + + if(pwplib.setup[SETUP_TRANS]>=0) + chars=pwplib.setup[SETUP_TRANS]; + + if(pwplib.setup[SETUP_RASTER]>=0) + rasters=pwplib.setup[SETUP_RASTER]; + + /*********************************************/ + + if(rasters<0)rasters=0; + if(colors<0)colors=0; + if(chars<0)chars=0; + + for(;i<256;i++) + pwpconv.font[i]=pwpconv.col[i]=i; + convcalc_termsafe(); + + /*********************************************/ + + pwpwrite("* character conversion: "); + + if(chars&2) + { + pwpwrite("ascii"); + if(chars&1)pwpwrite(" (no invert)"); + convcalc_ascii(chars); + }else + pwpwrite("native ibm"); + + /*********************************************/ + + if(!(colors&~7)) + { + char tmp[60]; + int fgcols=(colors&1)?8:16,bgcols=(colors&2)?8:16; + sprintf(tmp,"; %i fg and %i bg colors\n",fgcols,bgcols); + pwpwrite(tmp); + }else + { + pwpwrite("; monochrome\n"); + } + + if(colors&8) + convcalc_monotab(colors); + else + convcalc_colortab(colors); /* 1==8colfg, 2==8colbg, 4==ansibits */ + + + /*********************************************/ + + {int flags=8; + convcalc_megatab_finish(flags); + } + /* + inverse supported, 178/219 not in charset: |1 (vt100, xterm-mono) + fullsize, no halfblocks |2 (xterm) + no colors or no bgcolors |4 (all mono stuphos) + bg&fg supported; no bg brightlite |8 (8x16 textmodes) + */ + + + /*********************************************/ + + pwpwrite("* raster conversion: "); + if(rasters==0) + { + pwpwrite("coloured ibm-style\n"); + convcalc_rast_ibmcol(); + } + if(rasters==1) + { + pwpwrite("coloured\n"); + convcalc_rast_col(); + } + if(rasters==2) + { + pwpwrite("monochrome\n"); + convcalc_rast_mono(); + } + + pwplib.dump_rast=conv_dump_rast; + + /*********************************************/ + + convcalc_1to12(); + pwpconv.orig_dump_attr=pwplib.dump_attr; + pwplib.dump_attr=conv_dump_ibm; +} diff -r 000000000000 -r acb5694e93d9 pwplib/convert.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/convert.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,18 @@ +#include "pwplib.h" + +#ifndef __CONVERT_C + extern +#endif +struct +{ + u8 rast[256*2]; + u8 font[256],col[256]; + + u16 tab1to12[256]; + /* tab1to22 */ + + u16 megatab[256*256]; + u16 rasthalve[256*256]; + + void(*orig_dump_attr)(); +}pwpconv; diff -r 000000000000 -r acb5694e93d9 pwplib/decterm.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/decterm.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,367 @@ +/* + * PWPlib: VTxxx support, including VT220/320 charset customization + * + */ + +#include +#include + +#include "pwplib.h" + +#ifdef DRIVE_UNIX +#ifdef DRIVE_TTY_DEC + +#include "tty.h" +#include "convert.h" + +#define DECIMAL(x) \ +{int n=(x); if(n>=100){*d++='0'+(n/100);n%=100; \ + *d++='0'+(n/10);} \ + else \ + if(n>=10)*d++='0'+(n/10); \ + *d++='0'+(n%10);} + +/******************** vt2xx raster glyphs *************************/ + +/* move somewhere else */ +void tty_putch(int ch) +{ + char c=ch; + write(pwp_tty.fd,&c,sizeof(char)); +} + +#ifdef DRIVE_TTY_VT2XX +void vt2xx_loadglyphs(char*src,int width,int height,int howmany) +{ + if(pwp_tty.minor<300) + tty_write("\33P0;1;2{P",-1); + else + tty_write("\33P0;1;2;0;0;2{P",-1); + + for(;howmany;howmany--) + { + int x,y,i; + for(y=0;y>1)?u:d)+4*(y&3)+(x&3)]; + } +} +*/ +#endif + +void tty_vt_prep_attr_40() +{ + int y=0; + tty_write("\33[2J\33[H",-1); + for(;y<24;y++) + { + if(y)tty_putch('\n'); + tty_write("\33#6",3); + } +} + +#ifdef DRIVE_TTY_VT2XX +/* +int vt2xx_convcalc() +{ + const char intens[16]= + { + 0,1,6,7, 3,4,9,10, + 1,2,9,10,5,6,13,15 + }; + + int up,dn; + for(dn=0;dn<256;dn++) + for(up=0;up<256;up++) + { + int dins=(intens[dn&15]+intens[(dn>>4)&15]*3); + int uins=(intens[up&15]+intens[(up>>4)&15]*3); + + if(dins<7 && uins<7 && (dins|uins)) + { + if(uins>dins)uins=7;else dins=7; + } + + dins/=7; + uins/=7; + + if(dins>7)dins=7; + if(uins>7)uins=7; + + pwpconv.rasthalve[BYTES2(up,dn)]= + BYTES2(32+(dins|(uins<<3)),0x10); + } +} +*/ +#endif + +/**********************************************/ + +/* + &1: inverse + &8: bright + &16: charset: P vs B +*/ + +int tty_vt_dump(char*s,char*p,int x,int y) +{ + TEMPMALL(u8,tmp,pwplib.videobuf.width*pwplib.videobuf.height*16), + *d=tmp,skip=0,skipy=0; + + skipy=1; + + if(pwplib.frame&1) + { + p+=pwplib.videobuf.width*2; + s+=pwplib.videobuf.width*2; + } + + {int i=pwplib.frame&1; + for(;i1)DECIMAL(skip); + *d++='C'; + } + else + { + int i=0; + for(;i>=1; + + {int fw=8,fh=10; + switch((int)pwp_tty.minor) + { + case(420):fw=10;fh=16;break; /* 36 lines: fh=10, 48 lines: fh=8 */ + case(330):fw=10;fh=20;break; + case(320):fw=15;fh=12;break; + } + + conv_init(9,3,2); + + pwpwrite("* loading custom font\n"); + + { + TEMPMALL(char,tmp,fw*fh*64); + glyphgen_64rast(tmp,fw,fh); + vt2xx_loadglyphs(tmp,fw,fh,64); + TEMPFREE(tmp); + }} + + pwp_tty.maxframedata=500; + + tty_vt_initstring(); +} +#endif + +#endif +#endif + diff -r 000000000000 -r acb5694e93d9 pwplib/dumbterm.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/dumbterm.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,99 @@ +/* + * pwplib tty driver: dumb ascii output + * + */ + +#include "config.h" + +#ifdef HAVE_TTYSTUFF + +#include +#include +#include + +#include "pwplib.h" +#include "tty.h" + +struct +{ + char*newframe; + char*newline_; + int lgt_newline_; + + unsigned char*buf; + + int frame; +} + pwp_tty_dumb; + +void tty_dumb_dump_attr() +{ + u8 *s=pwplib.videobuf.d; + unsigned char *d=pwp_tty_dumb.buf; + int i=pwplib.videobuf.height,j; + +#ifndef FUCK1 + d+=sprintf((char*)d,(char*)pwp_tty_dumb.newframe,pwp_tty_dumb.frame++); +#else + sprintf((char*)d,(char*)pwp_tty_dumb.newframe,pwp_tty_dumb.frame++); + d+=strlen(d); +#endif + + for(;i;i--) + { + for(j=pwplib.videobuf.width;j;j--) + { + *d++=*s; + s+=2; + } + memcpy(d,pwp_tty_dumb.newline_,pwp_tty_dumb.lgt_newline_*sizeof(char)); + d+=pwp_tty_dumb.lgt_newline_; + } + + fwrite(pwp_tty_dumb.buf,(d-pwp_tty_dumb.buf),sizeof(char),stdout); + + if(pwplib.set.framedelay) + usleep(pwplib.set.framedelay*1000); +} + +void tty_dumb_prep_attr() +{ + if(pwp_tty_dumb.buf!=NULL) + free(pwp_tty_dumb.buf); + + pwp_tty_dumb.buf=malloc(( + (pwp_tty_dumb.lgt_newline_+pwplib.videobuf.width)*pwplib.videobuf.height + )+strlen(pwp_tty_dumb.newframe)); +} + +int tty_dumb_init() /*int argc,char**argv) */ +{ + pwplib.prep_attr=tty_dumb_prep_attr; + pwplib.dump_attr=tty_dumb_dump_attr; + + pwp_tty_dumb.newframe="\22"; + pwp_tty_dumb.newline_="\n"; + + /* ... get options */ + + pwp_tty_dumb.lgt_newline_=strlen(pwp_tty_dumb.newline_); + pwp_tty_dumb.frame=0; + + conv_init(8,3,2); + + return 1; +} + + +/* + options to be included: + + newline_ "string" set newline_ string + newframe "string" set newframe string + optimize none no optimization + optimize blank skip spaces at end of line (default) + optimize video skip unchanged lines && non-changed areas at eol + +*/ + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/gb.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/gb.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,257 @@ +/* + * PWP Generic Beep (PWPbeep) engine for digital audio. + * + */ + +#include "config.h" + +#ifdef DRIVE_GB + +#include +#include +#include +#include + +#include "pwplib.h" + +struct { + struct { + int wvlgt; + int wvleft; + int wvphase; + int wvlgt1; + }ch[3]; + int freq; +}pwpgb; + +void gb_sound(int chan,int freq,int volume,int ratio) +{ + if(volume&&freq){ + int wvlgt= + ((double)(pwpgb.freq*12)/pow(1.059465,freq/256.0)); + + if(ratio<1)ratio=1;else if(ratio>255)ratio=255; + + pwpgb.ch[chan].wvlgt=(wvlgt*ratio)>>7; + pwpgb.ch[chan].wvlgt1=2*pwpgb.ch[chan].wvlgt-wvlgt; + + pwpgb.ch[chan].wvleft=pwpgb.ch[chan].wvlgt/(chan+2); + pwpgb.ch[chan].wvphase=volume; + }else{ + pwpgb.ch[chan].wvphase=0; + pwpgb.ch[chan].wvleft=pwpgb.ch[chan].wvlgt=32123; + } +} + +void gb_init(int freq) +{ + pwpgb.freq=freq; + {int i=0;for(;i<3;i++)gb_sound(i,0,0,0);} +} + +void gb_gen1chan(char*d,int l,int freq) +{ + int ph=128*256; + while(l--){ + *d++=64+((ph>>8)&0x80); + ph+=freq; + } +} + +#define CH pwpgb.ch + +void gb_beepemu(char*d,int l) +{ + static int pf=0; + int + fq0=CH[0].wvlgt, + fq1=CH[1].wvlgt, + fq2=CH[2].wvlgt,fq; + if(CH[0].wvphase==0)fq0=32768; + if(CH[1].wvphase==0)fq1=32768; + if(CH[2].wvphase==0)fq2=32768; + + if(fq0>fq1){int tmp=fq0;fq0=fq1;fq1=tmp;} + if(fq0>fq2){int tmp=fq0;fq0=fq2;fq2=tmp;} + if(fq1>fq2){int tmp=fq1;fq1=fq2;fq2=tmp;} + + if(pf&1){ + if(pf&2)fq=fq1;else fq=fq2; + if(!fq)fq=fq0; + }else{ + fq=fq0; + if(fq==32768){fq=fq1; + if(fq==32768)fq=fq2;} + } + if(fq==32768)memset(d,128,l);else + { + fq=(65536*256)/fq; + gb_gen1chan(d,l,fq); + } + pf++; +} + +void gb_genwave(char*d,int l) +{ + int remain=0; + + l<<=8; + while(l) + { + int min=CH[0].wvleft,w,sum; + w=CH[1].wvleft;if(w255)sum=255; + + if(min>l)min=l; l-=min; + memset(d,sum,(min+remain)>>8); + d+=((min+remain)>>8); + remain=(min+remain)&255; + + {int i=0; + for(;i<3;i++){ + w=CH[i].wvleft-=min; + if(!w) + { + CH[i].wvleft=CH[i].wvlgt1; + CH[i].wvlgt1=CH[i].wvlgt; + CH[i].wvlgt=CH[i].wvleft; + CH[i].wvphase=0-CH[i].wvphase; + } + } + } + } +} + +/* my_memset, ... */ + +/* +gb_genwave_opt(char*buf,int endptr) +{ + #define SETTILL(a) \ + {int bord=w##a,rs;if(bord>endptr)goto last;\ + rs=sum;if(rs&~0xff){if(rs<0)rs=0;else rs=255;}\ + memset(buf+(ptr>>8),rs,2+((bord-ptr)>>8));ptr=bord;\ + CH[a].wvphase=0-CH[a].wvphase;\ + sum+=(CH[a].wvphase)<<1;\ + w##a=ptr+CH[a].wvlgt;} + #define HANDLE(s0,s1,s2) \ + {SETTILL(s0); \ + if(w##s0<=w##s1)goto w##s0##w##s1##w##s2;else \ + if(w##s0<=w##s2)goto w##s1##w##s0##w##s2;else \ + goto w##s1##w##s2##w##s0;} + + int ptr=0,sum=CH[0].wvphase+ + CH[1].wvphase+ + CH[2].wvphase; + + int w0=CH[0].wvleft, + w1=CH[1].wvleft, + w2=CH[2].wvleft; + + endptr<<=8; + + w1w2w0:HANDLE(1,2,0); + w2w1w0:HANDLE(2,1,0); + w0w2w1:HANDLE(0,2,1); + w2w0w1:HANDLE(2,0,1); + w0w1w2:HANDLE(0,1,2); + w1w0w2:HANDLE(1,0,2); + + last: + {int rs=sum; + if(rs&~0xff){if(rs<0)rs=0;else rs=255;} + memset(buf+(ptr>>8),rs,(endptr-ptr)>>8);} + + CH[0].wvleft=w0-endptr; + CH[1].wvleft=w1-endptr; + CH[2].wvleft=w2-endptr; + + #undef SETTILL +} +*/ + +#if (0) +gb_genwave_opt(char*buf,int endptr) +{ + int ptr=0,sum=CH[0].wvphase+ + CH[1].wvphase+ + CH[2].wvphase; + + #define w0 CH[0].wvleft + #define w1 CH[1].wvleft + #define w2 CH[2].wvleft + +/* volatile int w0=CH[0].wvleft, + w1=CH[1].wvleft, + w2=CH[2].wvleft;*/ + + endptr<<=8; + + #define SETTILL(a) \ + {int bord=w##a,rs;if(bord>endptr)goto last;\ + rs=sum;if(rs&~0xff){if(rs<0)rs=0;else rs=255;}\ + memset(buf+(ptr>>8),rs,2+((bord-(ptr&~0xff))>>8));ptr=bord;\ + CH[a].wvphase=0-CH[a].wvphase;\ + sum+=(CH[a].wvphase)<<1;\ + w##a=ptr+CH[a].wvlgt;} + + if(w0<=w1){ + if(w1<=w2)goto w0w1w2;else + if(w2<=w0)goto w2w0w1;else + goto w0w2w1; + }else{ + if(w0<=w2)goto w1w0w2;else + if(w2<=w1)goto w2w1w0; //.. else w1w2w0 (next) + } + + w1w2w0: + SETTILL(1); + if(w1<=w2)goto w1w2w0;else + if(w1<=w0)goto w2w1w0;else //.. if(w1>w0)goto w2w0w1; + goto w2w0w1; + w2w1w0: + SETTILL(2); + if(w2<=w1)goto w2w1w0;else + if(w2<=w0)goto w1w2w0;else + goto w1w0w2; + + w0w2w1: + SETTILL(0); + if(w0<=w2)goto w0w2w1;else + if(w0<=w1)goto w2w0w1;else //.. if(w0>w1)goto w2w1w0; + goto w2w1w0; + w2w0w1: + SETTILL(2); + if(w2<=w0)goto w2w0w1;else + if(w2<=w1)goto w0w2w1;else + goto w0w1w2; //.. not reqd + + w0w1w2: + SETTILL(0); + if(w0<=w1)goto w0w1w2;else + if(w0<=w2)goto w1w0w2;else //.. if(w0>w2)goto w1w2w0; + goto w1w2w0; + + w1w0w2: + SETTILL(1); + if(w1<=w0)goto w1w0w2;else + if(w1<=w2)goto w0w1w2;else + goto w0w2w1; + + last: + {int rs=sum; + if(rs&~0xff){if(rs<0)rs=0;else rs=255;} + memset(buf+(ptr>>8),rs,2+((endptr-ptr)>>8));} + + CH[0].wvleft=w0-endptr; + CH[1].wvleft=w1-endptr; + CH[2].wvleft=w2-endptr; + + #undef SETTILL +} +#endif + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/glyphgen.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/glyphgen.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,129 @@ +/* + * PWPlib: glyph generator ('font fixer') + * + */ + +#ifdef DRIVE_UNIX + +#include +#include + +#include "pwplib.h" + +#include "tty.h" +#include "convert.h" + +/*****************/ + +struct +{ + int w,h; +} +pwp_glyphgen; + + const char rastmatrix[8*4*4]= + " " " " " " " " + "x " " " " x " " " + " x " " " " x x" " " + "x x " " " " x x" " " + "x x " " x x" "x x " " x x" + "x x " "xxxx" "x x " "xxxx" + "xx x" "xxxx" " xxx" "xxxx" + "xxxx" "xxxx" "xxxx" "xxxx"; + +/* + #define MKB(a,b,c,d,e,f,g,h) \ + ((a<<7)|(b<<6)|(c<<5)|(d<<4)|(e<<3)|(f<<2)|(g<<1)|h) + + char rastmatrix[4*4]= + { + MKB(1,1,1,1,1,0,1,0), + MKB(1,1,0,0,0,1,0,0), + MKB(1,0,1,1,1,0,0,0), + MKB(1,1,0,0,0,0,0,0), + + MKB(1,1,1,0,0,0,0,0), + MKB(1,1,1,1,0,0,0,0), + MKB(1,1,1,0,0,0,0,0), + MKB(1,1,1,1,0,0,0,0), + + MKB(1,0,1,1,0,0,0,0), + MKB(1,1,0,0,1,1,0,0), + MKB(1,1,1,1,0,0,1,0), + MKB(1,1,0,0,1,1,0,0), + + MKB(1,1,1,0,0,0,0,0), + MKB(1,1,1,1,0,0,0,0), + MKB(1,1,1,0,0,0,0,0), + MKB(1,1,1,1,0,0,0,0) + }; + + #undef MKB +*/ + + +char* glyphgen_raster(char*o,int ul,int ur,int dl,int dr) +{ + int x,y; + + for(y=0;y>1)? + (x<=(pwp_glyphgen.w>>1)?ul:ur): + (x<=(pwp_glyphgen.w>>1)?dl:dr)); + + /* another possiblity: interpolated rasters? */ + + *o++=rastmatrix[16*lev+4*(y&3)+(x&3)]>32?1:0; + + /* (rastmatrix[4*(y&3)+(x&3)]>>lev)&1 */ + } + + return o; +} + +char* glyphgen_64rast(char*o,int width,int height) +{ + int u,d; + + pwp_glyphgen.w=width; + pwp_glyphgen.h=height; + + for(u=0;u<8;u++) + for(d=u?0:1;d<8;d++) + o=glyphgen_raster(o,u,u,d,d); + + return o; +} +/* 96rast (94rast?) will be more clever, designed for 2x2 resolution */ + +void glyphgen_fixtoibm(char*o,int width,int height) +{ + int c=width*height; + + pwp_glyphgen.w=width; + pwp_glyphgen.h=height; + + o=glyphgen_raster(o+c*176, + 2,2,2,2); + o=glyphgen_raster(o,4,4,4,4); + glyphgen_raster(o,6,6,6,6); + + o=glyphgen_raster(o+c*(219-178), + 7,7,7,7); + o=glyphgen_raster(o,0,0,7,7); + o=glyphgen_raster(o,7,0,7,0); + o=glyphgen_raster(o,0,7,0,7); + + glyphgen_raster(o,7,7,0,0); +} + +/* fixtopwp: has 96rast set + enhancements for text art + (ripoffs from petscii etc) + ? + + linuxcon: loadpwpfont - loads a 8x8 (8x7?) font +*/ + +#endif \ No newline at end of file diff -r 000000000000 -r acb5694e93d9 pwplib/init.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/init.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,325 @@ +#include "pwplib.h" +#include "tty.h" + +/************************************/ + +void pwpwrite(char*z) +{ + if(!pwplib.setup[SETUP_SHUTUP]) + { + fprintf(stderr,"%s",z); + usleep(1000*pwplib.set.infodelay); + } +} + +void rmarg(int*argc,char**argv,int n) +{ + while(n<*argc) + { + argv[n]=argv[n+1]; + n++; + } + (*argc)--; +} + +#define ARGC pwplib.argc +#define ARGV pwplib.argv +int getopts(optab*argin) +{ + int i=0; + + {optab*s0=argin; + while(s0->name!=NULL) + { + *(s0->var)=s0->dflt; + s0++; + } + } + + for(i=0;imatch) + { + match=m; + lev=ngl; + wh=j; + } + j++; + } + + if(wh>=0) + { + rmarg(&ARGC,ARGV,i); + + switch((int)argin[wh].type) + { + case(OPT_BIN): + *((int*)(argin[wh].var))=lev; + break; + + case(OPT_NOT): + *((int*)(argin[wh].var))=1-lev; + break; + + case(OPT_ONE): + *((int*)(argin[wh].var))=1; + + case(OPT_INT): + if(ARGV[i]!=NULL) + { + *((int*)(argin[wh].var))=atoi(ARGV[i]); + rmarg(&ARGC,ARGV,i); + } + break; + + case(OPT_STRING): + if(ARGV[i]!=NULL) + { + *((char**)(argin[wh].var))=strdup(ARGV[i]); + rmarg(&ARGC,&ARGV,1); + } + break; + } + } + else i++; + } +} +#undef ARGC +#undef ARGV + +/************************************/ + +const char*pwplogo= +"\033[2J\033[H\n" +" \033[36;46mMMmmmmmmMM\033[0m\n" +" \033[36;46mMM\033[0m\n" +" \033[31;41mxxxxxxxxxxxx\033[0m\n" +" \033[31;41mxxxxxxxxxxxxxxxxxxx\033[0m\n" +" \033[31;41mxxxxxxxxx\033[0m\n" +" \033[33;43mZZZZZ\033[34;44m....\033[0m %%%%%%%%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@\033[34;44m......\033[0m %%%%%%%%%. %%%....... %%%. %%%%%%%%%....\n" +" \033[37;47m@@@@\033[34;44m....\033[37mo\033[34m.\033[0m .....%%% %%% %%% %%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@\033[34;44m....\033[0m %%% %%% %%% %%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@\033[0m %%%% %%% %%% %%% %%% %%%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@\033[0m %%%% %%% %%% %%% %%% %%%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@@@\033[0m %%%%%%%%% %%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@\033[0m %%%%%%%%% %%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@@@\033[0m %%% %%%%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@\033[0m \033[31;41mxx\033[0m %%% %%%%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@@\033[0m %%% %%%%% %%%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@\033[0m %%% %%%%% %%%% %%% %%%\n" +" \033[37;47m@@@@@@@@@\033[0m .....%%%....... %%%%%%%%%%%%%%. %%%..........\n" +" \033[37;47m@@@@@\033[0m %%% %%%%%%%%%%%%%% %%%\n" +" \033[37;47m@@@@\033[0m\n\n"; + + +void pwplib_startup() +{ + if(!pwplib.setup[SETUP_SHUTUP]) + { + pwpwrite("starting up.... 2sec delay for ^C"); + sleep(2); + } + + /* send initstuff? */ +} + +void pwplib_end() +{ + if(pwplib.setup[SETUP_SHUTUP])return; + + pwplib_shutdown(); + sleep(2); + + fputs(pwplogo,stderr); + pwpwrite("shutting down multimedia subsystems\n" + "operation finished - support pwp\n\n\n"); +} + +/***************************************************************/ + +optab main_init[]= +{ + /* stuph */ + "help", OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_WANTHELP], + "shutup", OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_SHUTUP], + "infodelay",OPT_INT,(void*)100,(void*)&pwplib.set.infodelay, + + /* general */ + "nosound",OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_NOSOUND], + "novideo",OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_NOVIDEO], + + /* video */ + "term", OPT_STRING,(void*)NULL,(void*)&pwplib.set.term, + "lang", OPT_STRING,(void*)NULL,(void*)&pwplib.set.lang, + "tty", OPT_BIN,(void*)0,(void*)&pwplib.setup[SETUP_TTY], /* obsolete? */ + "pvp", OPT_BIN,(void*)0,(void*)&pwplib.setup[SETUP_PVP], + + /* size */ + "height", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_USERHEIGHT], + "width", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_USERWIDTH], + + /* conversion */ + "trans", OPT_INT,(void*)-1,(void*)&pwplib.setup[SETUP_TRANS], + "colors", OPT_INT,(void*)-1,(void*)&pwplib.setup[SETUP_COLORS], + "raster", OPT_INT,(void*)-1,(void*)&pwplib.setup[SETUP_RASTER], + "halve", OPT_BIN,(void*)1,(void*)&pwplib.setup[SETUP_HALVE], + + /* tty-etc stuff */ + "fps", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_FPS], + "bps", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_BPS], + "minfps", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_MINFPS], + "maxfps", OPT_INT,(void*)256,(void*)&pwplib.setup[SETUP_MAXFPS], + "lossy", OPT_BIN,(void*)0,(void*)&pwplib.setup[SETUP_LOSSY], + "fdelay", OPT_INT,(void*)0,(void*)&pwplib.set.framedelay, + "fbytes", OPT_INT,(void*)500,(void*)&pwplib.set.framebytes, + + /* audio options */ + "audev", OPT_STRING,(void*)NULL,(void*)&pwplib.set.audev, + "volume", OPT_INT,(void*)32,(void*)&pwplib.setup[SETUP_VOLUME], + + NULL,0,NULL,NULL +}; + +/* + + pwplib.set.dev "tty" "pvp" "none" + pwplib.set.term "linux" "vt100" "xterm" ... + pwplib.set.audev "oss" "au" "ossopl" + + first try to init audev (oss, au etc) + then fallback to terminal audio + + terminal audio: + - ascii + - linux: ioctl* + - linux: ttycode + - telemate: ttycode + - X11* part of x11 driver + + *: requires timing - use itimers? + + ttycode audio output is integrated to the vt/ansi dumpers. + + tty audio driver outputs a buffer containing byte#/string pairs. + timer+tty solutiton: output audio and video to separate terminals? + + telemate music is buffered, no special timing required. + +*/ + +int pwplib_init(int argc,char**argv) +{ + int i=0,quit=0; + + pwplib.argc=argc; + pwplib.argv=argv; + + getopts(main_init); + + if(pwplib.setup[SETUP_WANTHELP]) + { + printf( + "usage: %s [options] where options include:\n\n" + + " help this text\n" + + "\n" + + " shutup be quiet - only output the essentials\n" + " term s set terminal type to s (e.g. xterm-color, vt100, ansi)\n" + " lang s set locale/language to s (e.g. en, fi)\n" + " pvp output in pwp video phormat (stdout)\n" + + "\n" + + " nosound no sound\n" + " novideo no video output\n" + + "\n" + + " height x set buffer height (default = fullwindow)\n" + " width x set buffer width (default = fullwindow)\n" + + "\n" + + " volume v set soft volume to v (numeric, default 32)\n" + " colors x color configuration: 0=16x16, 1=8fg 2=8bg, 3=8x8\n" + " 8=monochrome, 9=vtattributes\n" + " trans n charset: 1=ibm, 2=ascii, 3=ascii-pure\n" + " raster n raster rendering mode: 0==fg+bg 1=fgonly 2=mono\n" + " ascii pure ascii: no colors, no attributes\n" + " nohalve always use one character cell to represent a pixel\n" + + "\n" + + " fbytes n bytes/frame threshold (optimize frame if exceeded)\n" + " fdelay n delay after each frame (milliseconds)\n" + + "\n" + + " bps n non-rt: fix to n bits per second, no delay\n" + " fps n non-rt: fix to n frames per second, no delay\n" + "\n",argv[0]); + + exit(0); + pwplib.setup[SETUP_SHUTUP]++; + } + + if(!pwplib.setup[SETUP_SHUTUP]) + { + fputs(pwplogo,stderr); + pwpwrite("pwplib " PWPLIB_VERSION " initializing..\n\nrun with --help for some options\n\n"); + } + + if(pwplib.set.lang==NULL) + pwplib.set.lang=pwp_get_locale(); + + {char buf[40]; + sprintf(buf,"* using locale '%s'\n",pwplib.set.lang); + pwpwrite(buf); + } + + if(!pwplib_initcore()) + { + pwpwrite("initialization failed!\n"); + return 0; + } + + if(pwplib.setup[SETUP_WANTHELP]) + return 0; + + return 1; +} diff -r 000000000000 -r acb5694e93d9 pwplib/linuxcon.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/linuxcon.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,393 @@ +#include "config.h" + +#ifdef DRIVE_LINUXCON + +#include +#include +#include + +#include "pwplib.h" + +#include "tty.h" + +/******************** vcsa code ********************/ + +struct{ + int fd; + int width,height; + + int fontw,fonth; + u8*fontd; + char*fontd_tab; + + /* add cfd (control fd) or something */ +}pwp_linuxcon; + +void vcsa_dump_attr() +{ + char*buf=pwplib.videobuf.d; + int ptr=4+pwp_linuxcon.width* + ((pwp_linuxcon.height-pwplib.videobuf.height)&~1); + if(ptr<4)ptr=4; + + if(pwp_linuxcon.width==pwplib.videobuf.width) + { + lseek(pwp_linuxcon.fd,ptr,SEEK_SET); + write(pwp_linuxcon.fd,buf, + pwplib.videobuf.width*pwplib.videobuf.height*2); + }else + { + int y=0,y1=pwplib.videobuf.height,w=pwplib.videobuf.width; + ptr+=((pwp_linuxcon.width-pwplib.videobuf.width)&~1); + if(y1>pwp_linuxcon.height)y1=pwp_linuxcon.height; + if(w>pwp_linuxcon.width)w=pwp_linuxcon.width; + w<<=1; + for(;y=0)return vcsa; + } + vcsa=open("/dev/vcsa",O_RDWR); + if(vcsa>=0)return vcsa; + + return -1; +} + +int vcsa_init() /* init vcsa device */ +{ + unsigned char vcsahdr[4]; + int vcsa=vcsa_get(); + if(vcsa<0)return 0; + + read(vcsa,vcsahdr,4); + pwp_linuxcon.fd=vcsa; + pwplib.videobuf.height=pwp_linuxcon.height=vcsahdr[0]; + pwplib.videobuf.width=pwp_linuxcon.width=vcsahdr[1]; + + pwpwrite("* using vcsa device\n"); + + pwplib.dump_attr=vcsa_dump_attr; + return 1; +} + + +/********************************************************/ + +/*** some people are lazy to update their headers ... ***/ + +#ifndef KDFONTOP +#define KDFONTOP 0x4B72 + +struct console_font_op { + unsigned int op; + unsigned int flags; + unsigned int width, height; + unsigned int charcount; + unsigned char *data; +}; + +#define KD_FONT_OP_SET 0 +#define KD_FONT_OP_GET 1 +#define KD_FONT_OP_SET_DEFAULT 2 +#define KD_FONT_OP_COPY 3 + +#define KD_FONT_FLAG_DONT_RECALC 1 +#endif + +/********************************************/ + +enum +{ + GLY_CRAP=0, + GLY_BLANK, + GLY_FULL, + GLY_TOP, + GLY_BOTTOM, + GLY_LEFT, + GLY_RIGHT, +}; + +int tty_linux_setfont(char*fontd,int w,int h) +{ + struct console_font_op fontop; + fontop.op=KD_FONT_OP_SET; + fontop.flags=0; + fontop.data=fontd; + fontop.charcount=256; + fontop.width=w; + fontop.height=h; + + return ioctl(2,KDFONTOP,&fontop); +} + +int tty_linux_setfont_tab() +{ + char*font=malloc(pwp_linuxcon.fontw*32*sizeof(char)); + char*f=font, + *s=pwp_linuxcon.fontd_tab; + + int i,x,y; + + for(i=0;i<256;i++) + for(y=0;y<32;y++) + { + int b=0,x1=(pwp_linuxcon.fontw+7)&~7; + for(x=0;xx1)x1=x+1; + if(yy1)y1=y+1; + dens++; + } + byte<<=1; + } + } + + {int a=GLY_CRAP; + int w=(x1-x0),h=(y1-y0); + + if(h<=0)a=GLY_BLANK; + else + { + if(w>=pwp_linuxcon.fontw-1) + { + if(h>=pwp_linuxcon.fontw-1)a=GLY_FULL; + else + if(y1>=pwp_linuxcon.fontw-2)a=GLY_BOTTOM; + else + if(!y0)a=GLY_TOP; + } + else + if(h>=pwp_linuxcon.fonth-1) + { + if(x1>=pwp_linuxcon.fonth-2)a=GLY_RIGHT; + else + if(!x0)a=GLY_LEFT; + } + } + analysis[c]=a; +/* if(a)fprintf(stderr,"char %d: %d\n",c,a);*/ + } + } + + if(analysis[176]==GLY_FULL && + analysis[177]==GLY_FULL && + analysis[178]==GLY_FULL && + analysis[219]==GLY_FULL && + analysis[220]==GLY_BOTTOM && + analysis[223]==GLY_TOP) return 2; + +/* fprintf(stderr,"done\n");*/ + + return 1; +} + +int tty_linux_getfont() +{ + { + struct console_font_op fontop; + fontop.op=KD_FONT_OP_GET; + fontop.flags=0; + fontop.data=NULL; + fontop.charcount=0; + + /* if handle 2 doesn't work, try handles 1 and 0? + also with vcsa */ + + /* use this bitreverter somewhere (X11-1bpp code?) not here. + replaces lookups in fast machines. + + a=((a&0xf0f0f0f0)>>4)|((a&0x0f0f0f0f)<<4); + a=((a&0xcccccccc)>>2)|((a&0x33333333)<<2); + a=((a&0xaaaaaaaa)>>1)|((a&0x55555555)<<1); + */ + + ioctl(2,KDFONTOP,&fontop); + if(fontop.charcount) + { + pwp_linuxcon.fontw=fontop.width; + pwp_linuxcon.fonth=fontop.height; + + if(!fontop.data) + { + fontop.data=malloc(((pwp_linuxcon.fontw+7)>>3)*32* + fontop.charcount*sizeof(u8)); + fontop.op=KD_FONT_OP_GET; + fontop.flags=KD_FONT_FLAG_DONT_RECALC; + if(ioctl(2,KDFONTOP,&fontop)<0) + goto oldcall; + } + + pwp_linuxcon.fontd=fontop.data; + goto gotfont; + } + } + + oldcall: + { + struct consolefontdesc fontx; + fontx.chardata=malloc(512*32*sizeof(u8)); + + if(ioctl(2,GIO_FONTX,&fontx)<0)return 0; + + pwp_linuxcon.fontw=8; + pwp_linuxcon.fonth=fontx.charheight; + pwp_linuxcon.fontd=fontx.chardata; + } + + gotfont: + + pwp_linuxcon.fontd_tab= + malloc(pwp_linuxcon.fontw*pwp_linuxcon.fonth*sizeof(char)); + + return tty_linux_analyzefont(); +} + +/********************************************************/ + +extern void tty_ansicol_dump_attr(); +extern void tty_ansicol_prep_attr(); + +int tty_linux_initstring() +{ + write(pwp_tty.fd,"\33[11m",5*sizeof(char)); /* select ibmpc charset */ + tty_vt_initstring(); +} + +int tty_linux_init() +{ + if(!vcsa_init()) + { + pwplib.dump_attr=tty_ansicol_dump_attr; + pwplib.prep_attr=tty_ansicol_prep_attr; + pwpwrite("* no vcsa access - using tty\n"); + /* send init */ + } + + {int i=tty_linux_getfont(); + + pwpwrite("* font analysis: "); + + if(i==0)pwpwrite("can't access - assuming ibm\n");else + if(i==1)pwpwrite("no ibm rasters - using ascii\n");else + if(i==2)pwpwrite("ibm rasters found - using ibm\n"); + + if(i==0 || i==2) conv_init(2,0,0); + else conv_init(2,2,1); + } + + tty_linux_initstring(); +} + +#endif + +/* + additional stuff: + + - font customization: + - save font + - if evil: if font bigger than 8x8, change to 8x8 + - include rasterchars (64 chars as in vt220 driver) + ... + - restore old font +*/ diff -r 000000000000 -r acb5694e93d9 pwplib/locale.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/locale.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,38 @@ +#include +#include + +#include "pwplib.h" + +char* pwp_get_locale() +{ +#ifdef __POSIX__ + int lang=0,i=3; + char*z; + + while(i) + { + i--; + if(i==2) + z=getenv("LANG"); + else + if(i==1) + z=getenv("LC_ALL"); + else + { + z=getenv("HOST"); + if(z!=NULL)z+=strlen(z)-2; + } + + if(z!=NULL) + { + if(z[0]=='f' && z[1]=='i')return "fi"; + if(z[0]=='F' && z[1]=='I')return "fi"; + } + } + + return "en"; +#else + return "fi"; +#endif +} + diff -r 000000000000 -r acb5694e93d9 pwplib/lossy.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/lossy.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,182 @@ +/* + * PWPlib: Lossy filtering + * + * Need to improve this stuff to give visible results. + * + */ + +#ifdef BELLWHISTLED + +#include "config.h" + +#include +#include +#include + +#include "pwplib.h" + +void conv_losestuff_old(u8*d,int lgtnew,int flags) /* flags&1 == fillgaps */ +{ + static int lgt=0; + static u8 *prev=NULL; + + if(lgt!=lgtnew) + { + if(prev!=NULL) + free(prev); + + lgt=lgtnew; + + if(lgt)prev=malloc(lgt*sizeof(u8)*2); + + {int i=0; + for(;i0;i--) + { + if(*s!=*d) + { + int cnt=0; + int smallgap=0; + + while((*s!=*d) || (smallgap>0)) + { + if(*s==*d) + { + smallgap--; + } + else + { + smallgap=2; + } + + cnt++; + s+=2; + d++; + i--; + if(i<=0)break; + } + + /*fprintf(stderr,"%d\n",cnt);*/ + + switch((int)cnt) + { + case(0): + case(1): + if(s[-1]<2) + d[-1]=s[-2]; + break; + + case(2): + if(s[-1]+s[-3]<4) + { + d[-1]=s[-2]; + d[-2]=s[-4]; + } + break; + case(3): + if(s[-1]+s[-3]+s[-5]<5) + { + d[-1]=s[-2]; + d[-2]=s[-4]; + d[-3]=s[-6]; + } + + default: + if(flags&1) + {int j=(cnt-2); + u8*dd=d-cnt,*ss=s-cnt*2; + + for(;j;j--) + { + if(dd[-1]==ss[-2] && dd[-3]==ss[-6] && + dd[-2]!=ss[-4] && ss[-3]<(ss[-1]+ss[-5]+1)) + dd[-2]=ss[-4]; + ss[-3]++; + dd++; + ss+=2; + } + }break; + } + } + else + { + if(s[1]<8)s[1]++; + s+=2; + d++; + } + } + + {int i=lgt;s=prev; + for(;i>0;i--) + { + if(*s!=*dd) s[1]=0; + s[0]=*dd++; + s+=2; + } + } + } +} + +void conv_losestuff(u8*d,int lgtnew,int flags) +{ + static int lgt=0; + static u8 *prev=NULL; + + /* +0: currently viewed stuff + +lgt: previous frame + +2lgt: new frame + +3lgt: dynamic level 0..7 -- later + */ + + if(lgt!=lgtnew) + { + if(prev!=NULL) + free(prev); + + lgt=lgtnew; + + if(lgt)prev=malloc(lgt*sizeof(u8)*4); + + memcpy(prev+0*lgt,d,lgt); + memcpy(prev+2*lgt,d,lgt); + } + + memcpy(prev+1*lgt,prev+2*lgt,lgt); + memcpy(prev+2*lgt,d,lgt); + + /* */ + + {int i=0,justwrote=-1; + for(;i=0 && i) a[-1]=*c; + *a=*c; + } + justwrote=*d=*a; + } + else justwrote=-1; + d++; + } + } +} + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/pvp.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/pvp.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,180 @@ +/* + * PWPlib: PWP Video Phormat + * + * not very functional yet :) + * + */ + +#include "config.h" + +#ifdef DRIVE_PVP + +#include +#include +#include + +#include "pwplib.h" + +void pvp_calcframe(u8*s,int lgtnew,int flags) +{ + + static int lgt=0; + static u8*prev=NULL; + + TEMPMALL(u8,buf,lgtnew*2),*d=buf; + + int accum=0; + + if(lgtnew!=lgt) + { + if(prev!=NULL)free(prev); + lgt=lgtnew; + prev=malloc(lgt*sizeof(u8)); + flags|=1; + } + + if(flags&1)memset(s,0,lgt*sizeof(u8)); /* support other consts as well? */ + + {int i=0,skip=0; + for(;i0) + { + if(skip<128){*d++=128|((skip-1)&127);skip=0;} + else {*d++=128|127;skip-=128;} + } + + {u8*cntp=d; + int gap=0; + + while(gap<2 && i>8; + write(1,head,6); + } + + write(1,buf,d-buf); + + TEMPFREE(buf); +} + + + +/* + pvp (pwp video phormat) stream: + + for each frame: + 'pVP' signature (used by synch routines etc) + u8 frame type + u16 frame length, in bytes + + r-frame (lossless rasterdata) + + stored: changes to the previous display frame, rle+huffman compression? + + time delta to the previous frame (in second/256's) + + index=0; + + command + - 1xxxxxxx skip 0..127 bytes + - 0xxxxxxx 0..127 bytes of data follow + + R-frame (lossless raster keyframe) + + stored as delta to a constant (zero) table + + i/I-frames == like r/R but for ibm char/attribute-pair screendump + + we need some kind of compression for the lossless frames. + + we also need a low-bandwidth lossy compression for longer movies and + tv streams. + + g-frame (gsm audio in 8kHz) for moviez + + b-frame (beep audio) + (B-frame == update everything? write a B-frame when every channel + changes or when above given threshold) + + length of output (in second/256's) + chan# (8bit), freq(16bit), vol(8bit), pulsestat(8bit) + + c-frame (commentary) + + first byte==importance level (signed byte, 0==for names, copyrights etc) + rest==ascii string + + may also contain things like stupid irclog, subtitles, textual + descriptions of the video etc + +*/ + +void pvp_sound(int ch,int note,int vol,int ratio) +{ + +} + +void pvp_loopflush() +{ +/* + timer_counter(); + pwplib.player(); + + save b-frames +*/ +} + +void pvp_dump_rast() +{ + if(pwplib.setup[SETUP_LOSSY]) + conv_losestuff(pwplib.videobuf.d, + pwplib.videobuf.height*pwplib.videobuf.width,1); + + pvp_calcframe(pwplib.videobuf.d, + pwplib.videobuf.width*pwplib.videobuf.height,0); +} + +void pvp_dump_ibm() +{ + pvp_calcframe(pwplib.videobuf.d, + pwplib.videobuf.width*pwplib.videobuf.height*2,0); +} + +void pvp_init() +{ + pwplib.videobuf.height=50; + pwplib.videobuf.width=80; + + pwplib.dump_attr=&pvp_dump_ibm; + pwplib.dump_rast=&pvp_dump_rast; + pwplib.sound=pvp_sound; + pwplib.loopflush=&pvp_loopflush; +} + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/pwplib-unix.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/pwplib-unix.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,249 @@ +#define __PWPLIB_C + +#include "config.h" + +#include +#include + +#include +#include +#include + +#include "pwplib.h" +#include "tty.h" + +#define DESTRUCTORS 8 + +/******************** random stuff *************************/ + +extern void pwplib_dummy(); +#define pwp_dummy pwplib_dummy + +void pwpwrite(char*z) +{ + if(!pwplib.setup[SETUP_SHUTUP]) + { + fprintf(stderr,"%s",z); + usleep(1000*pwplib.set.infodelay); + } +} + +/********************* timer ******************************/ + +#define TIMERHZ 72 +int pwp_unix_tod() +{ + struct timeval tod; + gettimeofday(&tod,NULL); + return (tod.tv_sec*TIMERHZ)+(tod.tv_usec*TIMERHZ/1000000); +} + +/********************* destructors, signals etc **********/ + +void pwp_fatalsignal(int n) +{ + char buf[40]; + + pwplib_shutdown(); + + sprintf(buf,"* died to signal %d\n",n); + pwpwrite(buf); + + exit(1); +} + +/******************** initialization *********************/ + +int pwplib_initcore() +{ + pwplib_init_common(); + + /*** set signals ***/ + + signal(SIGTERM,pwp_fatalsignal); + signal(SIGINT,pwp_fatalsignal); + signal(SIGQUIT,pwp_fatalsignal); + signal(SIGKILL,pwp_fatalsignal); + signal(SIGSEGV,pwp_fatalsignal); + + /*** video ***/ + +# ifdef DRIVE_VIDEO + +# ifdef DRIVE_SDL + if(pwp_SDL_init()) + { + } + else +# endif +# ifdef DRIVE_PVP + if(pwplib.setup[SETUP_PVP]) + pvp_init(); + else +# endif + if(!pwplib.setup[SETUP_NOVIDEO]) + { + tty_init(); + } +# endif + + /*** audio ***/ +# ifdef DRIVE_AUDIO + if(!pwplib.setup[SETUP_NOSOUND]) + { + int snd=0; +#ifdef DRIVE_SDL + if(!snd) { if(pwp_sdlaudio_init())snd++; } +#endif + +#ifdef DRIVE_OSS + if(!snd) { if(oss_init())snd++; } +#endif + +#ifdef DRIVE_HPUX + if(!snd) { if(hpuxsnd_init())snd++; } +#endif + + if(!snd) + pwpwrite("* couldn't init sound. going silent.\n"); + + } + else + pwpwrite("* no sound, as requested\n"); +# endif + + /*** fallbacks - remove? ***/ + + if(pwplib.dump_rast==pwplib_dummy && pwplib.dump_attr!=pwplib_dummy) + pwplib.dump_rast=pwplib_dump_rast_plain; + + /*** timer ***/ + + if(pwplib.setup[SETUP_BPS]|pwplib.setup[SETUP_FPS]) + { + char tmp[100]; + sprintf(tmp,"non-realtime output (bps=%d fps=%d)\n", + pwplib.setup[SETUP_BPS],pwplib.setup[SETUP_FPS]); + pwpwrite(tmp); + + pwplib.timerfunc=pwp_timer_nrt; + pwplib.timer_counter=0; + } + else + pwplib.timerfunc=pwp_unix_tod; + + /*** hmmm ***/ + + if(pwplib.setup[SETUP_HALVE]) + pwplib.videobuf.height<<=1; + + /* only allow if smaller than original? */ + + if(pwplib.setup[SETUP_USERHEIGHT]) + pwplib.videobuf.height=pwplib.setup[SETUP_USERHEIGHT]; + if(pwplib.setup[SETUP_USERWIDTH]) + pwplib.videobuf.width=pwplib.setup[SETUP_USERWIDTH]; + + /*** done ***/ + +# ifdef DRIVE_VIDEO + if(!pwplib.setup[SETUP_NOVIDEO]) + {char tmp[100]; + sprintf(tmp,"* pwplib now controls a %d x %d framebuffer\n", + pwplib.videobuf.width,pwplib.videobuf.height); + pwpwrite(tmp); + } +# endif + + return 1; +} + +/************************************/ + +const char*pwplogo= +"\033[2J\033[H\n" +" \033[36;46mMMmmmmmmMM\033[0m\n" +" \033[36;46mMM\033[0m\n" +" \033[31;41mxxxxxxxxxxxx\033[0m\n" +" \033[31;41mxxxxxxxxxxxxxxxxxxx\033[0m\n" +" \033[31;41mxxxxxxxxx\033[0m\n" +" \033[33;43mZZZZZ\033[34;44m....\033[0m %%%%%%%%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@\033[34;44m......\033[0m %%%%%%%%%. %%%....... %%%. %%%%%%%%%....\n" +" \033[37;47m@@@@\033[34;44m....\033[37mo\033[34m.\033[0m .....%%% %%% %%% %%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@\033[34;44m....\033[0m %%% %%% %%% %%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@\033[0m %%%% %%% %%% %%% %%% %%%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@\033[0m %%%% %%% %%% %%% %%% %%%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@@@\033[0m %%%%%%%%% %%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@\033[0m %%%%%%%%% %%% %%% %%% %%%%%%%%%\n" +" \033[37;47m@@@@@@\033[0m %%% %%%%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@\033[0m \033[31;41mxx\033[0m %%% %%%%% %%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@@@@\033[0m %%% %%%%% %%%% %%% %%%\n" +" \033[37;47m@@@@@@@@@@@\033[0m %%% %%%%% %%%% %%% %%%\n" +" \033[37;47m@@@@@@@@@\033[0m .....%%%....... %%%%%%%%%%%%%%. %%%..........\n" +" \033[37;47m@@@@@\033[0m %%% %%%%%%%%%%%%%% %%%\n" +" \033[37;47m@@@@\033[0m\n\n"; + + +void pwplib_startup() +{ + if(!pwplib.setup[SETUP_SHUTUP]) + { + pwpwrite("starting up.... 2sec delay for ^C"); + sleep(2); + } + + /* send initstuff? */ +} + +void pwplib_end() +{ + if(pwplib.setup[SETUP_SHUTUP])return; + + pwplib_shutdown(); + sleep(2); + + fputs(pwplogo,stderr); + pwpwrite("shutting down multimedia subsystems\n" + "operation finished - support pwp\n\n\n"); +} + +/***************************************************************/ + +int pwplib_init(int argc,char**argv) +{ + int i=0,quit=0; + + pwplib.argc=argc; + pwplib.argv=argv; + + pwplib_getopts(); + + if(pwplib.setup[SETUP_WANTHELP]) + { + printhelp(); + exit(0); + pwplib.setup[SETUP_SHUTUP]++; + } + + if(!pwplib.setup[SETUP_SHUTUP]) + { + fputs(pwplogo,stderr); + pwpwrite("pwplib " PWPLIB_VERSION " initializing..\n\nrun with --help for some options\n\n"); + } + + {char buf[40]; + sprintf(buf,"* using locale '%s'\n",pwplib.set.lang); + pwpwrite(buf); + } + + if(!pwplib_initcore()) + { + pwpwrite("initialization failed!\n"); + return 0; + } + + if(pwplib.setup[SETUP_WANTHELP]) + return 0; + + return 1; +} diff -r 000000000000 -r acb5694e93d9 pwplib/pwplib-w32.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/pwplib-w32.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,79 @@ +#define __PWPLIB_C + +#include "config.h" + +#include +#include + +#include + +#include "pwplib.h" + +#define DESTRUCTORS 8 + +/******************** random stuff *************************/ + +extern void pwplib_dummy(); +#define pwp_dummy pwplib_dummy + +/********************* timer ******************************/ + +#define TIMERHZ 72 +int pwp_w32_ticks() +{ + int ticks = GetTickCount(); + + return ((ticks*TIMERHZ)/1000); +// (10000000/10441)); +} + +/******************** initialization *********************/ + +int pwplib_initcore() +{ + pwplib_init_common(); + + win32con_init(); + + win32snd_init(); + + pwplib.timerfunc = pwp_w32_ticks; + + + if(pwplib.dump_rast==pwplib_dummy && pwplib.dump_attr!=pwplib_dummy) + pwplib.dump_rast=pwplib_dump_rast_plain; + + return 1; +} + +/*********************************************************************/ + +void pwplib_startup() +{ +} + +void pwplib_end() +{ + pwplib_shutdown(); + + /* write some stuph */ +} + +/***************************************************************/ + +extern void pwplib_getopts(); + +int pwplib_init(int argc,char**argv) +{ +// printf("ME THINKS WIN32 ROOLZ\n\n"); + + pwplib.argc=argc; + pwplib.argv=argv; + + pwplib_getopts(); + + pwplib_initcore(); + + return 1; +} + diff -r 000000000000 -r acb5694e93d9 pwplib/pwplib.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/pwplib.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,5 @@ +#ifdef UNIX +#include "pwplib-unix.c" +#else +#include "pwplib-w32.c" +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/pwplib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/pwplib.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,176 @@ +#ifndef __PWPLIB_H +#define __PWPLIB_H + +#define PWPLIB_VERSION "1.90" + +#ifdef UNIX +#define __POSIX__ +#endif + +/************** user interface *************/ + +int pwplib_init(int argc,char**argv); +int pwplib_timer(); +void pwplib_shutdown(); +void pwplib_startup(); + +#define pwplib_buf pwplib.videobuf.d +#define pwplib_bufw pwplib.videobuf.width +#define pwplib_bufh pwplib.videobuf.height + +#define pwplib_prep_rast() pwplib.prep_rast() +#define pwplib_dump_rast() pwplib.dump_rast() + +#define pwplib_prep_attr() pwplib.prep_attr() +#define pwplib_dump_attr() pwplib.dump_attr() + +#define pwplib_prep_layered() pwplib.prep_layered() +#define pwplib_dump_layered() pwplib.dump_layered() + +#define pwplib_loopflush() pwplib.loopflush() + +#define pwplib_setplayer(p) pwplib.player=p +#define pwplib_player() pwplib.player() + +#define pwplib_sound_off(c) pwplib.sound(c,0,0,0) +#define pwplib_sound_n(c,n) p pwplib.sound(c,n,128,128) +#define pwplib_sound_nv(c,n,v) pwplib.sound(c,n,v,128) +#define pwplib_sound_nvr(c,n,v,r) pwplib.sound(c,n,v,r) + +#define pwplib_locale pwplib.set.lang + +#define pwplib_setup(var) pwplib.setup[SETUP_##var] + +/*******************************************/ + +#include +#include +#include +#include +#include +#include + +#ifdef __POSIX__ + +#include +#include +#include +#include +#include + +#endif + +#include "types.h" +#include "config.h" + +#ifndef __PWPLIB_C + extern +#endif +struct +{ + int argc; + char**argv; + + struct + { + u8*d; + int width,height; + int aspect; + }videobuf; + + void(*prep_rast)(); + void(*dump_rast)(); + + void(*prep_attr)(); + void(*dump_attr)(); + + void(*dump_layered)(); + void(*prep_layered)(); + + void(*sound)(int ch,int note,int vol,int ratio); + void(*loopflush)(); + void(*player)(); + + /*** internal stuff ***/ + + int timer_counter; + + int(*timerfunc)(); + + int setup[20]; + + struct + { + char*dev; + char*term; + char*lang; + char*audev; + + int wanthelp; + + int framedelay; + int framebytes; + + int infodelay; + + char temp_pad[12]; + + /* etc... replace the whole setup structure */ + }set; + + int frame; +}pwplib; + +enum +{ + SETUP_NOSOUND=0, + SETUP_NOVIDEO, + + SETUP_VOLUME, + SETUP_TRANS, + SETUP_COLORS, + SETUP_RASTER, + SETUP_HALVE, + SETUP_TTY, + SETUP_FPS, + SETUP_BPS, + SETUP_LOSSY, + SETUP_PVP, + SETUP_MINFPS, + SETUP_MAXFPS, + SETUP_SHUTUP, + SETUP_USERHEIGHT, + SETUP_USERWIDTH, + SETUP_WANTHELP +}; + +#ifndef __PWPLIB_C + extern +#endif + void pwp_timer_regframe(int bytes); + +typedef struct +{ + char*name; + int type; + void*dflt; + void**var; +}optab; + +#define OPT_BIN 0 +#define OPT_NOT 1 +#define OPT_ONE 2 +#define OPT_INT 3 +#define OPT_STRING 4 +#define OPT_SETDEF 5 +#define OPT_NODEF 128 + +#define STDIN 0 +#define STDOUT 1 +#define STDERR 2 + +char* pwp_get_locale(); +void pwplib_dump_rast_plain(); +int pwp_timer_nrt(); + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/pwplib.todo --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/pwplib.todo Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,148 @@ + +usage: ../peluce/peluce [options] where options include: + + help this text + shutup be quiet - only output the essentials + + x video to X11 window (bitmapped) + tty video to terminal at stdout + vcsa video to linux console (/dev/vcsa*) + + ascii only use ascii characters + ibm use ibm/vga character set + color use color (16x8 with ibm, 8x1 with ascii) + mono don't use color or attributes + + lang s set locale/language to s (e.g. en, fi) + + nosound no sound + novideo no video output + + volume v set soft volume to v (numeric, default 32) + +advanced options: + + term s set terminal type to s (e.g. xterm-color, vt100, ansi) + height x set buffer height (default = fullwindow) + width x set buffer width (default = fullwindow) + + colcfg x color configuration: 0=16x16, 1=8fg 2=8bg, 3=8x8 + 8=monochrome, 9=vtattributes + trans n charset: 1=ibm, 2=ascii, 3=ascii-pure + rastcfg n raster rendering mode: 0==fg+bg 1=fgonly 2=mono + nohalve always use one character cell to represent a pixel + + fbytes n bytes/frame threshold (optimize frame if exceeded) + fdelay n delay after each frame (milliseconds) + + bps n non-rt: fix to n bits per second, no delay + fps n non-rt: fix to n frames per second, no delay + + pvp output in pwp video phormat (stdout) + +------------ + + ibm=176,177,178,219,220,223 + + definitions for compilation + LEGACY support ansi art etc stuff in <=1998 demos + BELLWHISTLED support weirdo targets etc + +----------------------------------------------------------------------------------- + + + +main targets + + X11 + * bitmap (mainly 8/16/24/32 bpp, also 1 and 4?) + use lookuptables; variable pixel size + + Terminals + * ansi (-ibm -color) + * colorvt (-ascii -color) + * vt100 (-ascii -mono) + + VCSA + if -ibm or -ascii not specified: check font, select ibm or ascii + +sound targets + + OSS + ESD + ALSA + /dev/audio + + Linux beeps + X11 beeps + +special targets + + X11-font + + vt220 + - char redef + + termcap/terminfo + - + + + internal Xlib (raw socket access) + + telnet + + web (html/changing_gif/multihtml) + + non-realtime video: terminal-fixedcps / avi_or_something (fixed fps) + non-realtime sound: raw or pwpsound + +=================== + +easy options + -ascii ascii graphic + -ibm ibm graphic + -color 16x8 for ibm, 8x1 for ascii + -color16 16x1 for ascii? + -mono no color codes or attributes + + -x/-tty/-vcsa video + -oss/-esd/-alsa/-au digital audio + -Xbeep/-linuxbeep/... beep audio + + try to fix charlookup prevention + +------------------------------------------------------------- + + X11 + -font use a font + -color + -ibm + Terminals + -ascii assume ascii charset + -ibm assume ibm charset + + -color 8x16 + -mono + + -ansi -color -ibm + -ibm no fontcheck, assume ibm + -ascii no fontcheck, assume ascii + + -color -nocolor + -raster -noraster use + -ibm ibm rasterchars + -termcap use termcap instead of vt100 + VCSA (check font, select output) + -vcsa [-color] [-raster] + + then use either ascii8x1 or raster16x8 - optional raster16x16) + + simplify the interface + +======================================================================= +======================================================================= + + - generic terminal output (termcap/terminfo) + - lossy filtering to speed up remote transfers + - finish pvp support + diff -r 000000000000 -r acb5694e93d9 pwplib/rastconv.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/rastconv.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,251 @@ +#include +#include + +#include "pwplib.h" +#include "convert.h" +#include "tty.h" + +/*** funx ***/ + +int conv_rast2rgb(int i) +{ + int r=0,g=0,b=0; + + {int a=(i&8)?6:3; + if(i&4)r+=a; + if(i&2)g+=a; + if(i&1)b+=a; + if((i&15)==8) + { + r=2; + g=2; + b=2; + } + } + + {int a=(i&128)?9:4; + if(i&64)r+=a; + if(i&32)g+=a; + if(i&16)b+=a; + if((i&0xf0)==128) + { + r+=3; + g+=3; + b+=3; + } + } + + return (r<<8)|(g<<4)|b; +} + +int conv_rgbdiff(int a,int b) +{ + int rd=((a>>8)&15)-((b>>8)&15); + int gd=((a>>4)&15)-((b>>4)&15); + int bd=(a&15)-(b&15); + + return abs(rd)*3+abs(gd)*6+abs(bd); /* max diff 150 */ +} + +/*** table generators ***/ + +void convcalc_rast_ibmcol() +{ + const char intens[16]= + { + 0,1,6,7, 3,4,9,10, + 1,2,9,10,5,6,13,15 + }; + + int up,dn; + for(dn=0;dn<256;dn++) + for(up=0;up<256;up++) + { + int ch=176,at=dn|up; + int dins=intens[dn&15]+intens[(dn>>4)&15]*3; + int uins=intens[up&15]+intens[(up>>4)&15]*3; + + if(uins>=(dins<<1)) + { + ch=223; + at=((up>>4)&15)|(dn&0xf0); + } + else + if(dins>=(uins<<1)) + { + ch=220; + at=((dn>>4)&15)|(up&0xf0); + } + + pwpconv.rasthalve[BYTES2(up,dn)]= + pwpconv.megatab[BYTES2(ch,at)]; + } +} + +void convcalc_rast_col() +{ + const char convtab[8*8]= + " .,%xuow" + " :;%xhbw" + "';?%UJdm" + "\";?%OO66" + "~^?TXS6W" + "^qqTS8WW" + "^?pYNNN@" + "^?q9MM@@"; + + int up,dn; + for(dn=0;dn<256;dn++) + for(up=0;up<256;up++) + { + int fg=((dn|up)|((dn|up)>>4))&15, + bg=((dn&up)&((dn&up)>>4))&15; + + /* if limcols: bg == constant background or sumthing */ + + int dnbg= + conv_rgbdiff(conv_rast2rgb(bg*0x11), + conv_rast2rgb(dn)), + dnfg= + conv_rgbdiff(conv_rast2rgb(fg*0x11), + conv_rast2rgb(dn)), + upbg= + conv_rgbdiff(conv_rast2rgb(bg*0x11), + conv_rast2rgb(up)), + upfg= + conv_rgbdiff(conv_rast2rgb(fg*0x11), + conv_rast2rgb(up)); + + int dnpart=(dnfg*8)/(dnbg+dnfg+1), + uppart=(upfg*8)/(upbg+upfg+1); + + if(dnpart>7)dnpart=7; + if(uppart>7)uppart=7; + + pwpconv.rasthalve[BYTES2(dn,up)]= + pwpconv.megatab[ + BYTES2(convtab[dnpart|(uppart<<3)], + (fg|(bg<<4)))&0xffff]; + } +} + +extern void tty_vt_dump_attr(); + +void convcalc_rast_mono() +{ + const char intens[16]= + { + 0,1,6,7, 3,4,9,10, + 1,2,9,10,5,6,13,15 + }; + + const char convtab[8*8]= + " .,%xuow" + " :;%xhbw" + "';?%UJdm" + "\";?%OO66" + "~^?TXS6W" + "^qqTS8WW" + "^?pYNNN@" + "^?q9MM@@"; + + /* kludge.. */ +#ifndef __POSIX__ + int col=0x07; +#else + int col=(pwplib.dump_attr==tty_vt_dump_attr)?0x00:0x07; +#endif + int up,dn; + + for(dn=0;dn<256;dn++) + for(up=0;up<256;up++) + { + int dins=(intens[dn&15]+intens[(dn>>4)&15]*3); + int uins=(intens[up&15]+intens[(up>>4)&15]*3); + + if(dins<7 && uins<7 && (dins|uins)) + { + if(uins>=dins)uins=7; + if(uins<=dins)dins=7; + } + + dins/=7; + uins/=7; + + if(dins>7)dins=7; + if(uins>7)uins=7; + +#ifdef __POSIX__ + if(pwp_tty.type==TTY_VT2XX) + pwpconv.rasthalve[BYTES2(up,dn)]= + BYTES2(32+(dins|(uins<<3)),0x10); + else +#endif + pwpconv.rasthalve[BYTES2(up,dn)]= + BYTES2(convtab[dins|(uins<<3)],col); + } +} + +/******** conv_fromrast ***********/ + +void conv_fromrast_half(u8*d,u8*s,int hgt,int wdt) +{ + u16*dd=(u16*)d; + for(hgt>>=1;hgt;hgt--) + { + int x=wdt; + for(;x;x--) + { + *dd++=pwpconv.rasthalve[BYTES2(s[0],s[wdt])]; + s++; + } + s+=wdt; + } +} + +void conv_fromrast_full(u8*d,u8*s,int lgt) +{ + u16*dd=(u16*)d;s++; + for(;lgt;lgt--) + { + *d++=pwpconv.rasthalve[BYTES2(s[0],s[0])]; + s++; + } +} + +/*********************************/ + +void conv_dump_rast() +{ + TEMPMALL(u8,tmp,pwplib.videobuf.height*pwplib.videobuf.width*2); + +/* + if(pwplib.setup[SETUP_LOSSY]) + conv_losestuff(pwplib.videobuf.d, + pwplib.videobuf.height*pwplib.videobuf.width,1); +*/ + if(pwplib.setup[SETUP_HALVE]) + { + u8*push=pwplib.videobuf.d; + conv_fromrast_half(tmp,pwplib.videobuf.d, + pwplib.videobuf.height,pwplib.videobuf.width); + + pwplib.videobuf.d=tmp; + pwplib.videobuf.height>>=1; + pwpconv.orig_dump_attr(); + pwplib.videobuf.height<<=1; + pwplib.videobuf.d=push; + } + else + {u8*push=pwplib.videobuf.d; + + conv_fromrast_full(tmp,pwplib.videobuf.d, + pwplib.videobuf.height*pwplib.videobuf.width); + + pwplib.videobuf.d=tmp; + pwpconv.orig_dump_attr(); + pwplib.videobuf.d=push; + } + + TEMPFREE(tmp); +} diff -r 000000000000 -r acb5694e93d9 pwplib/sdl.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/sdl.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,150 @@ +/* + * pwplib SDL (Simple Directmedia Layer) video "driver" + * (C) Copyright 2010 ccr/TNSP^PWP + * + * Rasterization based on the prototype X11 driver by viznut/PWP + * + * This file and other changes are distributed under same + * license as pwplib itself. + */ +#include "config.h" + +#ifdef DRIVE_SDL + +#include "pwplib.h" +#include + +#define PWP_WINNAME "pwplib" +#define PWP_NCOLORS 256 + +struct { + int width, height, vflags; + SDL_Surface *screen; + SDL_Color cols[PWP_NCOLORS]; + u32 lookup[256]; +} pwp_SDL; + + +static void pwp_SDL_dump_rast_4x4() +{ + u32 *d = (u32 *) pwp_SDL.screen->pixels; + int x, y, j = 0; + u8 *ss = (u8 *) pwplib.videobuf.d; + + if (SDL_MUSTLOCK(pwp_SDL.screen) != 0) + { + if (SDL_LockSurface(pwp_SDL.screen) != 0) + { + SDL_Quit(); + pwpwrite("SDL: Could not lock video surface!\n"); + exit(1); + } + } + + for (y = pwplib.videobuf.height * 2; y; y--) + { + u8 *s = ss; + + for (x = pwplib.videobuf.width; x; x--) + *d++ = pwp_SDL.lookup[*s++]; + + j = (j + 1) & 1; + if (!j) + ss += pwplib.videobuf.width; + } + + if (SDL_MUSTLOCK(pwp_SDL.screen) != 0) + SDL_UnlockSurface(pwp_SDL.screen); + + SDL_Flip(pwp_SDL.screen); +} + +static void rast2rgb(int n, int muller, int *r, int *g, int *b) +{ + int fg = n & 15, bg = (n >> 4) & 15; + static const char rgb[16 * 3] = { 0, 0, 0, + 0, 0, 9, + 0, 9, 0, + 0, 9, 9, + 9, 0, 0, + 9, 0, 9, + 9, 9, 0, + 9, 9, 9, + 6, 6, 6, + 0, 0, 15, + 0, 15, 0, + 0, 15, 15, + 15, 0, 0, + 15, 0, 15, + 15, 15, 0, + 15, 15, 15 + }; + + *r = (muller * (rgb[bg * 3 + 0] * 2 + rgb[fg * 3 + 0])) / 45; + *g = (muller * (rgb[bg * 3 + 1] * 2 + rgb[fg * 3 + 1])) / 45; + *b = (muller * (rgb[bg * 3 + 2] * 2 + rgb[fg * 3 + 2])) / 45; +} + +void pwp_SDL_close(void) +{ + SDL_Quit(); +} + +int pwp_SDL_init(void) +{ + int pal[PWP_NCOLORS * 3], i; + + /* Assume these settings for now */ + pwp_SDL.vflags = 0; + pwp_SDL.width = 640; + pwp_SDL.height = 480; + + /* Set pwplib internal parameters */ + pwplib.videobuf.width = pwp_SDL.width / 4; + pwplib.videobuf.height = pwp_SDL.height / 4; + pwplib.dump_rast = pwp_SDL_dump_rast_4x4; + + /* NOTICE! Here we assume that SDL audio will be used also .. this is kind of a hack, + * because obviously we cannot know what audio subsystem is used at this point. + * (Blame oversimplicity of pwplib) + * -- ccr + */ + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_EVENTTHREAD | SDL_INIT_AUDIO) != 0) + { + pwpwrite("* SDL could not be initialized.\n"); + return 0; + } + + pwp_regdestr(pwp_SDL_close); + + /* Initialize a indexed / paletted video surface */ + pwp_SDL.screen = SDL_SetVideoMode(pwp_SDL.width, pwp_SDL.height, 8, pwp_SDL.vflags); + if (pwp_SDL.screen == NULL) + { + SDL_Quit(); + pwpwrite("* SDL could not initialize video surface/mode.\n"); + return 0; + } + + /* Set window caption, if any */ + SDL_WM_SetCaption(PWP_WINNAME, PWP_WINNAME); + + + /* Generate palette and rasterizations */ + for (i = 0; i < PWP_NCOLORS; i++) + { + int r, g, b; + rast2rgb(i, 255, &r, &g, &b); + pwp_SDL.cols[i].r = r; + pwp_SDL.cols[i].g = g; + pwp_SDL.cols[i].b = b; + pwp_SDL.lookup[i] = i | (i << 8) | (i << 16) | (i << 24); + } + SDL_SetColors(pwp_SDL.screen, pwp_SDL.cols, 0, PWP_NCOLORS); + + pwpwrite("* SDL\n"); + + return 1; +} + +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/setup.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/setup.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,318 @@ +#include "config.h" +#include "pwplib.h" + +#define DESTRUCTORS 8 + +/******************** random stuff *************************/ + +void pwplib_dummy(){} +#define pwp_dummy pwplib_dummy + +void pwplib_dump_rast_plain() +{ + TEMPMALL(u8,tmp,pwplib.videobuf.width*pwplib.videobuf.height*2); + u8 + *d=tmp, + *parentbuf=pwplib.videobuf.d, + *s=parentbuf; + + int i=pwplib.videobuf.width*pwplib.videobuf.height; + + for(;i;i--) + { +#ifdef DRIVE_WIN32 + d[0]=176; +#else + d[0]='%'; +#endif + d[1]=*s++; + d+=2; + } + + pwplib.videobuf.d=tmp; + pwplib.dump_attr(); + pwplib.videobuf.d=parentbuf; + + TEMPFREE(tmp); +} + +/********************* timer (unix) ************************/ + +#define TIMERHZ 72 +int pwp_timer_nrt() +{ + static int lastctr=0,framectr=0; + + if(pwplib.setup[SETUP_BPS]) + { + pwplib.timer_counter++; /* kludge */ + return (pwplib.timer_counter*TIMERHZ)/(pwplib.setup[SETUP_BPS]>>3); + } + else + { + if(pwplib.timer_counter!=lastctr) + { + framectr++; + lastctr=pwplib.timer_counter; + } + else + pwplib.timer_counter++; + return (framectr*TIMERHZ)/pwplib.setup[SETUP_FPS]; + } +} + +int pwplib_timer() +{ + static int base=-1;int v; + v=pwplib.timerfunc(); + if(base==-1)base=v; + return v-base; +} + +/********************* destructors, signals etc **********/ + +void(*pwp_destr[DESTRUCTORS])(); + +void pwp_regdestr(void(*func)()) +{ + static int curr=0; + pwp_destr[curr++]=func; + pwp_destr[curr]=NULL; +} + +void pwplib_shutdown() +{ + int i=0; + + while(pwp_destr[i]!=NULL) + pwp_destr[i++](); +} + +/******************** initialization *********************/ + +int pwplib_init_common() +{ + /*** base stuff ***/ + + pwplib.sound= + pwplib.loopflush= + pwplib.player= + pwplib.dump_attr= + pwplib.dump_rast= + pwplib.prep_attr= + pwplib.prep_rast= + pwplib_dummy; + + pwp_destr[0]=NULL; +} + +/***********************************************/ + +void rmarg(int*argc,char**argv,int n) +{ + while(n<*argc) + { + argv[n]=argv[n+1]; + n++; + } + (*argc)--; +} + +/*********************************************************************/ + +#define ARGC pwplib.argc +#define ARGV pwplib.argv +int getopts(optab*argin) +{ + int i=0; + + {optab*s0=argin; + while(s0->name!=NULL) + { + *(s0->var)=s0->dflt; + s0++; + } + } + + for(i=0;imatch) + { + match=m; + lev=ngl; + wh=j; + } + j++; + } + + if(wh>=0) + { + rmarg(&ARGC,ARGV,i); + + switch((int)argin[wh].type) + { + case(OPT_BIN): + *((int*)(argin[wh].var))=lev; + break; + + case(OPT_NOT): + *((int*)(argin[wh].var))=1-lev; + break; + + case(OPT_ONE): + *((int*)(argin[wh].var))=1; + + case(OPT_INT): + if(ARGV[i]!=NULL) + { + *((int*)(argin[wh].var))=atoi(ARGV[i]); + rmarg(&ARGC,ARGV,i); + } + break; + + case(OPT_STRING): + if(ARGV[i]!=NULL) + { + *((char**)(argin[wh].var))=strdup(ARGV[i]); + rmarg(&ARGC,&ARGV,1); + } + break; + } + } + else i++; + } +} +#undef ARGC +#undef ARGV + +/************************************/ + +optab main_init[]= +{ + /* stuph */ + "help", OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_WANTHELP], + "shutup", OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_SHUTUP], + "infodelay",OPT_INT,(void*)100,(void*)&pwplib.set.infodelay, + + /* general */ + "nosound",OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_NOSOUND], + "novideo",OPT_ONE,(void*)0,(void*)&pwplib.setup[SETUP_NOVIDEO], + + /* video */ + "term", OPT_STRING,(void*)NULL,(void*)&pwplib.set.term, + "lang", OPT_STRING,(void*)NULL,(void*)&pwplib.set.lang, + "tty", OPT_BIN,(void*)0,(void*)&pwplib.setup[SETUP_TTY], /* obsolete? */ + "pvp", OPT_BIN,(void*)0,(void*)&pwplib.setup[SETUP_PVP], + + /* size */ + "height", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_USERHEIGHT], + "width", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_USERWIDTH], + + /* conversion */ + "trans", OPT_INT,(void*)-1,(void*)&pwplib.setup[SETUP_TRANS], + "colors", OPT_INT,(void*)-1,(void*)&pwplib.setup[SETUP_COLORS], + "raster", OPT_INT,(void*)-1,(void*)&pwplib.setup[SETUP_RASTER], + "halve", OPT_BIN,(void*)1,(void*)&pwplib.setup[SETUP_HALVE], + + /* tty-etc stuff */ + "fps", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_FPS], + "bps", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_BPS], + "minfps", OPT_INT,(void*)0,(void*)&pwplib.setup[SETUP_MINFPS], + "maxfps", OPT_INT,(void*)256,(void*)&pwplib.setup[SETUP_MAXFPS], + "lossy", OPT_BIN,(void*)0,(void*)&pwplib.setup[SETUP_LOSSY], + "fdelay", OPT_INT,(void*)0,(void*)&pwplib.set.framedelay, + "fbytes", OPT_INT,(void*)500,(void*)&pwplib.set.framebytes, + + /* audio options */ + "audev", OPT_STRING,(void*)NULL,(void*)&pwplib.set.audev, + "volume", OPT_INT,(void*)32,(void*)&pwplib.setup[SETUP_VOLUME], + + NULL,0,NULL,NULL +}; + +void printhelp() +{ + printf( + "usage: %s [options] where options include:\n\n" + + " help this text\n" + + "\n" + + " shutup be quiet - only output the essentials\n" + " term s set terminal type to s (e.g. xterm-color, vt100, ansi)\n" + " lang s set locale/language to s (e.g. en, fi)\n" + " pvp output in pwp video phormat (stdout)\n" + + "\n" + + " nosound no sound\n" + " novideo no video output\n" + + "\n" + + " height x set buffer height (default = fullwindow)\n" + " width x set buffer width (default = fullwindow)\n" + + "\n" + + " volume v set soft volume to v (numeric, default 32)\n" + " colors x color configuration: 0=16x16, 1=8fg 2=8bg, 3=8x8\n" + " 8=monochrome, 9=vtattributes\n" + " trans n charset: 1=ibm, 2=ascii, 3=ascii-pure\n" + " raster n raster rendering mode: 0==fg+bg 1=fgonly 2=mono\n" + " ascii pure ascii: no colors, no attributes\n" + " nohalve always use one character cell to represent a pixel\n" + + "\n" + + " fbytes n bytes/frame threshold (optimize frame if exceeded)\n" + " fdelay n delay after each frame (milliseconds)\n" + + "\n" + + " bps n non-rt: fix to n bits per second, no delay\n" + " fps n non-rt: fix to n frames per second, no delay\n" + "\n",pwplib.argv[0]); +} + +void pwplib_getopts() +{ + getopts(main_init); + + if(pwplib.set.lang==NULL) + pwplib.set.lang=pwp_get_locale(); +} + diff -r 000000000000 -r acb5694e93d9 pwplib/snd-hpux.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/snd-hpux.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,69 @@ +#include "config.h" + +#ifdef DRIVE_HPUX + +#include +#include +#include +#include + +#include + +#include "pwplib.h" + +#define TIMERHZ 72 + +struct{ + int fd; + char buf[4096]; + int buflgt; + int freq; +}pwp_hpuxsnd; + +extern void gb_sound(int,int,int,int); + +void hpuxsnd_loopflush() +{ + for(;;) + { + struct audio_status bi; + ioctl(pwp_hpuxsnd.fd,AUDIO_GET_STATUS,&bi); + if(bi.transmit_exact_count>3000)break; + + pwplib.player(); + gb_genwave(pwp_hpuxsnd.buf,pwp_hpuxsnd.buflgt); + write(pwp_hpuxsnd.fd,pwp_hpuxsnd.buf,pwp_hpuxsnd.buflgt); + + if(bi.transmit_buffer_count>6000)break; + } +} + +void hpuxsnd_restore() +{ + close(pwp_hpuxsnd.fd); +} + +int hpuxsnd_init() +{ + pwp_hpuxsnd.fd=open("/dev/audio",O_WRONLY); + if(pwp_hpuxsnd.fd<0)return 0; + + ioctl(pwp_hpuxsnd.fd,AUDIO_SET_TXBUFSIZE,2048); + ioctl(pwp_hpuxsnd.fd,AUDIO_SET_SAMPLE_RATE,8000); + ioctl(pwp_hpuxsnd.fd,AUDIO_SET_CHANNELS,AUDIO_CHANNEL_0|AUDIO_CHANNEL_1); + ioctl(pwp_hpuxsnd.fd,AUDIO_SET_DATA_FORMAT,AUDIO_FORMAT_LINEAR8BIT); + + pwpwrite("* HP-UX sound\n"); + + pwp_hpuxsnd.freq=8000; + pwp_hpuxsnd.buflgt=pwp_hpuxsnd.freq/TIMERHZ; + + pwplib.sound=gb_sound; + pwplib.loopflush=hpuxsnd_loopflush; + gb_init(pwp_hpuxsnd.freq); + + pwp_regdestr(hpuxsnd_restore); + + return 1; +} +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/snd-oss.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/snd-oss.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,60 @@ +#include "config.h" + +#ifdef DRIVE_OSS + +#include +#include +#include +#include + +#include + +#include "pwplib.h" + +#define TIMERHZ 72 + +struct{ + int fd; + char buf[4096]; + int buflgt; + int freq; +}pwp_oss; + +extern void gb_sound(int,int,int,int); + +void oss_loopflush() +{ + for(;;) + {audio_buf_info bi;ioctl(pwp_oss.fd,SNDCTL_DSP_GETOSPACE,&bi); + if(bi.fragments==1)break; + pwplib.player(); + gb_genwave(pwp_oss.buf,pwp_oss.buflgt); + write(pwp_oss.fd,pwp_oss.buf,pwp_oss.buflgt); + if(bi.fragments<3)break; + } +} + +void oss_restore() +{ + close(pwp_oss.fd); +} + +int oss_init() +{ + pwp_oss.fd=open("/dev/dsp",O_WRONLY); + if(pwp_oss.fd<0)return 0; + + pwpwrite("* OSS sound\n"); + + pwp_oss.freq=8000; + pwp_oss.buflgt=pwp_oss.freq/TIMERHZ; + + pwplib.sound=gb_sound; + pwplib.loopflush=oss_loopflush; + gb_init(pwp_oss.freq); + + pwp_regdestr(oss_restore); + + return 1; +} +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/snd-sdl.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/snd-sdl.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,70 @@ +/* + * pwplib SDL (Simple Directmedia Layer) audio "driver" + * (C) Copyright 2010 ccr/TNSP^PWP + * + * This file and other changes are distributed under same + * license as pwplib itself. + */ + +#include "config.h" + +#ifdef DRIVE_SDL + +#include +#include +#include +#include + +#include "pwplib.h" + +#define TIMERHZ 72 + + +extern void gb_sound(int, int, int, int); + + +static void pwp_sdlaudio_fill(void *udata, Uint8 * buf, int len) +{ + pwplib.player(); + gb_genwave(buf, len); +} + +static void pwp_sdlaudio_loopflush(void) +{ + /* Dummy */ +} + +static void pwp_sdlaudio_close(void) +{ + SDL_CloseAudio(); +} + +int pwp_sdlaudio_init() +{ + SDL_AudioSpec fmt; + + fmt.freq = 44100; + fmt.format = AUDIO_U8; + fmt.channels = 1; + fmt.samples = fmt.freq / TIMERHZ; + fmt.callback = pwp_sdlaudio_fill; + + if (SDL_OpenAudio(&fmt, NULL) < 0) + { + pwpwrite("* SDL: Could not get desired audio format.\n"); + return 0; + } + + pwpwrite("* SDL sound\n"); + + pwplib.sound = gb_sound; + pwplib.loopflush = pwp_sdlaudio_loopflush; + gb_init(fmt.freq); + + SDL_PauseAudio(0); + + pwp_regdestr(pwp_sdlaudio_close); + + return 1; +} +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/snd-w32.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/snd-w32.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,146 @@ +#include "config.h" + +#ifdef DRIVE_WIN32 + +#include +#include +#include +#include + +#include + +#define TIMERHZ 72 + +#include "pwplib.h" + +#define NUMBUFS 2 + +#define HARDBUFSIZE 65536 + +struct +{ + int buffersize; + HWAVEOUT outHandle; + WAVEHDR waveHdr[NUMBUFS]; + char *bufData[NUMBUFS]; + int currbuf; + int bufferptr; + int letsgo; +} +pwp_w32snd; + +extern void gb_sound(int,int,int,int); + +void win32snd_fill() +{ + while(pwp_w32snd.bufferptr<(HARDBUFSIZE-pwp_w32snd.buffersize)) + { + pwplib.player(); + + gb_genwave(pwp_w32snd.bufData[pwp_w32snd.currbuf] + + pwp_w32snd.bufferptr, + pwp_w32snd.buffersize); + + pwp_w32snd.bufferptr += pwp_w32snd.buffersize; + } + pwp_w32snd.waveHdr[pwp_w32snd.currbuf].lpData = + pwp_w32snd.bufData[pwp_w32snd.currbuf]; + pwp_w32snd.waveHdr[pwp_w32snd.currbuf].dwBufferLength = + pwp_w32snd.bufferptr; + + pwp_w32snd.bufferptr=0; + + waveOutPrepareHeader( + pwp_w32snd.outHandle, + &pwp_w32snd.waveHdr[pwp_w32snd.currbuf], + sizeof(WAVEHDR)); + + waveOutWrite( + pwp_w32snd.outHandle, + &pwp_w32snd.waveHdr[pwp_w32snd.currbuf], + sizeof(WAVEHDR)); + + pwp_w32snd.currbuf=(pwp_w32snd.currbuf+1)%NUMBUFS; +} + +static void CALLBACK win32snd_callback(HWAVEOUT hwo,UINT uMsg, + DWORD dwParam0, DWORD dwParam1, DWORD dwParam2) +{ + if(pwp_w32snd.letsgo==0) return; + +/* + if(pwp_w32snd.waveHdr[pwp_w32snd.currbuf].dwFlags&WHDR_PREPARED) + waveOutUnprepareHeader( + pwp_w32snd.outHandle, + &pwp_w32snd.waveHdr[pwp_w32snd.currbuf], + sizeof(WAVEHDR)); +*/ + win32snd_fill(); +} + +void win32snd_restore() +{ +} + +void win32snd_start() +{ + if(pwp_w32snd.letsgo==0) + { + {int i=0; + for(;i=0){ + pwp_tty.width=wsz.ws_col;pwp_tty.height=wsz.ws_row; + if(pwp_tty.width>0 && pwp_tty.height>0) return; + }} +# endif + + {char*tmp; + pwp_tty.height=((tmp=getenv("LINES"))?atoi(tmp):0); + pwp_tty.width=((tmp=getenv("COLUMNS"))?atoi(tmp):0); + if(pwp_tty.height>0 && pwp_tty.width>0)return;} + + pwp_tty.height=24; + pwp_tty.width=80; +} + +void tty_write(u8*data,int lgt) +{ + if(lgt<0)lgt=strlen(data); + + write(pwp_tty.fd,data,lgt); + pwplib.timer_counter+=lgt; +} + +/******************************************************************/ + +void tty_probe_raw() +{ + fd_set fdset; + struct timeval timeout; + + tty_init_termios(); + + memset((void*)&fdset,0,sizeof(fd_set)); + FD_SET(0,&fdset); + timeout.tv_sec=0; + timeout.tv_usec=250000; + + write(STDOUT,"\33[c",3*sizeof(char)); + + usleep(250000); /* give it some time to react */ + + select(0,&fdset,NULL,NULL,&timeout); + + if(FD_ISSET(STDIN,&fdset)) + { + char buf[40],*b; + int lgt,num; + + lgt=read(STDIN,buf,40*sizeof(char))/sizeof(char); + + if(lgt<3) return; + if( (buf[0]!=27) || + (buf[1]!='[') || + (buf[2]!='?')) return; + + b=buf+3;lgt-=3;num=0; + + pwp_tty.type=TTY_VT1XX; + pwp_tty.minor=0; + pwp_tty.vtcap=0; + + while(lgt) + { + char c=*b++; + if(c>='0' && c<='9') + num=(num*10)+c-'0'; + else + { + /*fprintf(stderr,"NUMBAH %d\n",num);*/ + if(num>=62) + { + pwp_tty.type =TTY_VT2XX; + pwp_tty.minor=20+(num-60)*100; + } + else + if(num<32)pwp_tty.vtcap|=(1<=200 && pwp_tty.type!=TTY_VT1XX) + return TTY_VT2XX; + else return TTY_VT1XX; + } + + if(tt[0]=='a') + return TTY_ANSISYS; + + if(tt[0]=='l') + return TTY_LINUX; + + if(!strcmp(tt,"dumb")) + return TTY_DUMB; + } + + return pwp_tty.type; +} + +#endif + +/******************************************************************/ + +int tty_init() +{ +#ifdef HAVE_TTYSTUFF + + int colors=2,chars=2,rasters=1; + + pwp_tty.fd=2; /* stderr */ + + tty_init_termios(); + + tty_getwinsize(); + pwp_tty.type=tty_probe(); +#endif + pwplib.videobuf.width=pwp_tty.width; + pwplib.videobuf.height=pwp_tty.height; + pwplib.videobuf.d=malloc(pwplib.videobuf.width* + pwplib.videobuf.height*sizeof(u16)); +#ifdef HAVE_TTYSTUFF + pwp_tty.prevbuf=malloc(pwplib.videobuf.width* + pwplib.videobuf.height*sizeof(u16)); + + pwpwrite("* terminal on stdout: "); + + switch((int)pwp_tty.type) + { + case(TTY_DUMB): + pwpwrite("dumb or unsupported\n"); + tty_dumb_init(); + break; + + case(TTY_VT2XX): +#ifdef DRIVE_TTY_VT2XX + { + char buf[40]; + sprintf(buf,"vt220/compatible (vt%d)\n",pwp_tty.minor); + pwpwrite(buf); + } + tty_vt2xx_init(); + break; +#endif + case(TTY_VT1XX): + pwpwrite("vt100/compatible"); + if(pwp_tty.minor>=200) + { char buf[40]; + sprintf(buf," (a vt%d wannabe)\n",pwp_tty.minor); + pwpwrite(buf); + } + else pwpwrite("\n"); + tty_vt1xx_init(); + break; + + +# ifdef DRIVE_LINUXCON + case(TTY_LINUX): + pwpwrite("linux console\n"); + tty_linux_init(); + break; +# endif + + case(TTY_XVT_COLOR): + pwpwrite("xterm/compatible with color\n"); + tty_ansicol_init(); + break; + + case(TTY_XVT_MONO): + pwpwrite("xterm (monochrome)\n"); + tty_vt1xx_init(); + break; + + case(TTY_ANSISYS): + pwpwrite("msdos ansi or compatible\n"); + tty_ansisys_init(); + break; + } +#endif + return 1; +} + +#endif + + diff -r 000000000000 -r acb5694e93d9 pwplib/tty.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/tty.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,42 @@ +#include "pwplib.h" + +#ifndef __TTY_C + extern +#endif +struct +{ + int fd; + int width; int height; + + int type,minor; + long int vtcap; + + int att,cx,cy; /* getridoff */ + + u8*prevbuf; + +#ifdef __POSIX__ + struct termios setup; +#endif + + int maxframedata; + int framedelay; +}pwp_tty; + +/* major types */ +enum +{ + TTY_DUMB=0, + + TTY_XVT_MONO, + TTY_XVT_COLOR, + + TTY_VT_COLOR_IBM, + TTY_VT_COLOR, + TTY_VT1XX, /* vt100, vt102 etc */ + + TTY_ANSISYS, /* ansi, ansi-bbs etc */ + TTY_LINUX, /* linux */ + + TTY_VT2XX /* vtnnn where nnn>=200 */ +}; diff -r 000000000000 -r acb5694e93d9 pwplib/types.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/types.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,41 @@ +#ifndef FUCK1 + typedef unsigned char u8; + typedef signed char s8; + typedef unsigned short int u16; + typedef signed short int s16; + typedef unsigned long int u32; + typedef signed long int s32; +#else +# define u8 unsigned char +# define s8 signed char +# define u16 unsigned short int +# define s16 signed short int +# define u32 unsigned long int +# define s32 signed long int +#endif + +#ifdef BIG_ENDIAN +# define BYTES2(a,b) (((a)<<8)|(b)) +# define FIRSTBYTE(a) ((a)>>8) +# define SECONDBYTE(a) ((a)&0xff) +#else +# define BYTES2(a,b) (((b)<<8)|(a)) +# define FIRSTBYTE(a) ((a)&0xff) +# define SECONDBYTE(a) ((a)>>8) +#endif + +#ifndef FUCK0 +# define TEMPMALL(a,b,c) a b[c] +# define TEMPFREE(a) +#else +# define TEMPMALL(a,b,c) a *b=malloc((c)*sizeof(a)) +# define TEMPFREE(a) free(a) +#endif + +#ifdef howmany +# undef howmany +#endif + +#ifdef minor +# undef minor +#endif diff -r 000000000000 -r acb5694e93d9 pwplib/win32con.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwplib/win32con.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,105 @@ +#include "config.h" + +#ifdef DRIVE_WIN32 + +#include "pwplib.h" + +#include + +/******************** vcsa code ********************/ + +struct{ + HANDLE hstdout; + COORD size; + + CHAR_INFO*buf; +}pwp_win32; + +/********************************************************/ + +void pwpwrite(char*z) +{ +/* fprintf(stderr,"%s\n",z); */ +} + +void win32con_dump_attr() +{ + u8*s=pwplib_buf; + CHAR_INFO*d=pwp_win32.buf; + int i=80*50; + + for(;i;i--) + { + d->Char.AsciiChar=*s++; + d->Attributes=*s++; + d++; + } + + { + const COORD bufsize = {80,50}; + const COORD bufcoord = {0,0}; + const SMALL_RECT writerect = { 0,0,79,49 }; + + WriteConsoleOutput(pwp_win32.hstdout,pwp_win32.buf, + bufsize,bufcoord,&writerect); + } +} + +int win32con_probe() +{ + if(GetStdHandle(STD_OUTPUT_HANDLE) != INVALID_HANDLE_VALUE) + return 1; else return 0; +} + +int win32con_init() +{ + AllocConsole(); + + pwp_win32.hstdout = GetStdHandle(STD_OUTPUT_HANDLE); + + { int ret=-1; + const COORD sz = {80,50}; + const SMALL_RECT area = { 0,0,79,49 }; + + ret &= SetConsoleScreenBufferSize(pwp_win32.hstdout,sz); + ret &= SetConsoleWindowInfo(pwp_win32.hstdout,1,&area); + + if(!ret) + { + FreeConsole(); + AllocConsole(); + + pwp_win32.hstdout = CreateConsoleScreenBuffer( + GENERIC_WRITE, FILE_SHARE_WRITE, NULL, + CONSOLE_TEXTMODE_BUFFER, NULL); + + SetConsoleActiveScreenBuffer(pwp_win32.hstdout); + SetConsoleScreenBufferSize(pwp_win32.hstdout,sz); + SetConsoleWindowInfo(pwp_win32.hstdout,1,&area); + } + + SetConsoleTitle("pwp"); + } + + pwp_win32.buf=malloc(sizeof(CHAR_INFO)*80*50); + + pwplib.videobuf.width = 80; + pwplib.videobuf.height = 100; + + pwplib.dump_attr=win32con_dump_attr; + + conv_init(2,0,0); + +// {int i=0;for(;i<20;i++)pwplib.setup[i]=0;} +/* + tty_init(); + pwplib.setup[SETUP_TRANS] = + pwplib.setup[SETUP_COLORS] = + pwplib.setup[SETUP_RASTER] = -1; + pwplib.setup[SETUP_HALVE]=1; + conv_init(2,0,0); +*/ + pwplib.dump_attr=win32con_dump_attr; +} + +#endif diff -r 000000000000 -r acb5694e93d9 pwpzax/Final_Isi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwpzax/Final_Isi.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,336 @@ +unsigned char fisi_patord[]={ + + 0,0,1,1,2,3, /* intropart */ + 6,7,8,9, /* isi #0 */ + 0,0,14,14, /* pelu #0 */ + + 6,7,8,9, + + 0,0,14,14, /* pelu #1 */ + + 10,11,12,13,6,7,8,9, + + 4, + +/* 5,5, + + 15,15,16,17,4,*/ 255 + }; + +unsigned char fisi_trax[][3][64]={ + +/***************************** iNTRO pART ******/ + +/* PATTERN 0 */ +32,254,32,254,32,254,32,254,32,255,255,254,32,255,255,254,32,254,32, +254,32,254,32,254,32,255,255,254,32,255,255,254,35,254,35,254,35,254, +35,254,35,255,255,254,35,255,255,254,34,254,34,254,34,254,34,254,35, +255,255,254,50,254,34,254, +39,254,39,254,39,254,39,254,39,255,255,254,39,255,255,254,39,254,39, +254,39,254,39,254,39,255,255,254,39,255,255,254,42,254,42,254,42,254, +42,254,42,255,255,254,42,255,255,254,41,254,41,254,41,254,41,254,42, +255,255,254,57,254,41,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255, + +/* PATTERN 1 */ +32,254,32,254,32,254,32,254,32,255,255,254,32,255,255,254,32,254,32, +254,32,254,32,254,32,255,255,254,32,255,255,254,35,254,35,254,35,254, +35,254,35,255,255,254,35,255,255,254,34,254,34,254,34,254,34,254,35, +255,255,254,50,254,34,254, +80,255,255,254,71,254,80,254,83,254,80,254,71,254,80,254,83,255,255, +254,80,254,71,255,255,254,80,254,71,254,80,254,83,255,255,254,74,254, +83,254,82,254,74,254,82,254,83,254,82,255,255,254,85,254,82,255,255, +254,73,254,82,254,82,254, +64,254,67,254,71,254,67,254,64,254,255,255,67,254,255,255,64,254,67, +254,71,254,67,254,64,254,255,255,67,254,255,255,67,254,71,254,74,254, +71,254,67,254,74,254,71,254,67,254,66,254,69,254,73,254,69,254,67,254, +255,255,66,254,67,254, + +/* PATTERN 2 */ +37,254,37,254,37,254,37,254,37,255,255,254,37,255,255,254,37,254,37, +254,37,254,37,254,37,255,255,254,37,255,255,254,40,254,40,254,40,254, +40,254,40,255,255,254,40,255,255,254,39,254,39,254,39,254,39,254,40, +255,255,254,55,254,39,254, +85,255,255,254,80,254,85,254,88,254,85,254,80,254,85,254,88,255,255, +254,85,254,80,255,255,254,85,254,80,254,85,254,88,255,255,254,83,254, +88,254,87,254,83,254,87,254,88,254,87,255,255,254,90,254,87,255,255, +254,82,254,87,254,87,254, +69,254,72,254,80,254,72,254,69,254,255,255,72,254,255,255,69,254,72, +254,80,254,72,254,69,254,255,255,72,254,255,255,72,254,80,254,83,254, +80,254,72,254,83,254,80,254,72,254,71,254,74,254,82,254,74,254,72,254, +255,255,71,254,72,254, + +/* PATTERN 2 */ +37,254,37,254,37,254,37,254,37,255,255,254,37,255,255,254,37,254,37, +254,37,254,37,254,37,255,255,254,37,255,255,254,40,254,40,254,40,254, +40,254,40,255,255,254,40,255,255,254,39,254, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, +85,255,255,254,80,254,85,254,88,254,85,254,80,254,85,254,88,255,255, +254,85,254,80,255,255,254,85,254,80,254,85,254,88,255,255,254,83,254, +88,254,87,254,83,254,87,254,88,254,87,254, +255,255,255,255,255,255,255,255,255,255,255,255,255,255, +69,254,72,254,80,254,72,254,69,254,255,255,72,254,255,255,69,254,72, +254,80,254,72,254,69,254,255,255,72,254,255,255,72,254,80,254,83,254, +80,254,72,254,83,254,80,254,72,254,71,254, +255/*253*/,255,255,255,255,255,255,255,255,255,255,255,255,255/*252*/, + +/*************************** tODELLUUS PART */ + +/* 4 == tyhjae */ + +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,250, + +/* 6==fmoottori1 */ +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48, +255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255, +67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66, +255, +80,254,96,87,96,87,80,87,80,254,96,87,99,90,87,90,80,254,87,80,96,87,80, +87,80,254,87,254,98,89,85,89,80,254,96,87,96,87,83,87,83,254,90,85,87,82, +87,82,99,254,90,254,85,254,99,254,85,254,82,254,82,254,85,82, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, + +/* PATTERN 1 */ +/*254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,25 +255,255, +66,254,255,255,50,254,255,255,82,73,82,254,66,254,255,255,66,254,255,255, +50,254,255,255,82,73,82,254,66,254,255,255,64,254,255,255,48,254,255,255, +80,71,80,254,64,254,255,255,48,254,255,255,255,254,255,255,96,254,96,254, +96,254,96,254, +50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,50,255,255,254, +66,254,50,254,50,255,255,254,66,254,50,254,48,255,255,254,64,254,48,254, +48,255,255,254,64,254,48,254,48,254,255,255,255,255,255,255,48,255,255, +254,48,254,64,254, +*/ + +80,254,255,255,80,254,74,255,80,255,74,255,80,254,255,255,255,255,71,255, +255,254,72,254,71,254,72,255,71,255,72,255,74,254,255,255,74,254,72,255, +74,255,72,255,74,254,255,255,255,255,69,255,255,254,71,254,69,254,255,255, +69,254,74,255, +64,254,255,255,48,254,255,255,80,71,80,254,64,254,255,255,64,254,255,255, +48,254,255,255,80,71,80,254,64,254,255,255,58,254,255,255,42,254,255,255, +74,69,74,254,58,254,255,255,58,254,255,255,42,254,255,255,74,69,74,254, +58,254,255,255, +48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,255,255,254, +64,254,48,254,48,254,64,254,48,254,64,254,42,255,255,254,58,254,42,254, +42,255,255,254,58,254,42,254,42,255,255,254,58,254,42,254,42,254,58,254, +42,254,58,254, + +82,254,255,255,82,254,80,255,82,255,80,255,82,254,255,255,255,255,73,255, +255,254,74,254,73,255,74,255,73,255,74,255,80,254,255,255,80,254,74,255, +80,255,74,255,80,254,255,255,255,255,71,255,255,254,73,254,87,254,87,254, +87,254,87,254, +66,254,255,255,50,254,255,255,82,73,82,254,66,254,255,255,66,254,255,255, +50,254,255,255,82,73,82,254,66,254,255,255,64,254,255,255,48,254,255,255, +80,71,80,254,64,254,255,255,48,254,255,255,48,254,255,255,80,71,80,254, +64,254,255,255, +50,255,255,254,66,254,50,254,50,255,255,254,66,254,50,254,50,255,255,254, +66,254,50,254,50,255,255,254,66,254,50,254,48,255,255,254,64,254,48,254, +48,255,255,254,64,254,48,254,48,255,255,254,64,254,48,254,48,255,255,254, +48,254,64,254, + +85,254,255,255,85,254,83,255,85,255,83,255,85,254,255,255,255,255,80,255, +255,254,81,254,80,254,81,255,80,255,81,255,83,254,255,255,83,254,81,255, +83,255,81,255,83,254,255,255,255,255,74,255,255,254,80,254,74,254,255,255, +74,254,83,255, +69,254,255,255,53,254,255,255,85,80,85,254,69,254,255,255,69,254,255,255, +53,254,255,255,85,80,85,254,69,254,255,255,67,254,255,255,51,254,255,255, +83,74,83,254,67,254,255,255,67,254,255,255,51,254,255,255,83,74,83,254,67, +254,255,255, +53,255,255,254,69,254,53,254,53,255,255,254,69,254,53,254,53,255,255,254, +69,254,53,254,53,254,69,254,53,254,69,254,51,255,255,254,67,254,51,254,51, +255,255,254,67,254,51,254,51,255,255,254,67,254,51,254,51,254,67,254,51, +254,67,254, + +87,254,255,255,87,254,85,255,87,255,85,255,87,254,255,255,255,255,82,255, +255,254,83,254,82,255,83,255,82,255,83,255,85,254,255,255,85,254,83,255, +85,255,83,255,85,254,255,255,255,255,80,255,255,254,82,254,96,254,255,255, +255,255,255,255, +71,254,255,255,55,254,255,255,87,82,87,254,71,254,255,255,71,254,255,255, +55,254,255,255,87,82,87,254,71,254,255,255,69,254,255,255,53,254,255,255, +85,80,85,254,69,254,255,255,53,254,255,255,53,254,255,255,85,254,255,255, +255,255,255,255, +55,255,255,254,71,254,55,254,55,255,255,254,71,254,55,254,55,255,255,254, +71,254,55,254,55,255,255,254,71,254,55,254,53,255,255,254,69,254,53,254, +53,255,255,254,69,254,53,254,53,255,255,254,69,254,53,254,53,254,255,255, +255,255,255,255, + +/* PATTERN 6 */ +86,254,255,255,81,254,255,255,73,254,255,255,81,254,255,255,86,254,81,255, +73,255,81,255,86,254,255,255,89,254,86,255,84,254,255,255,75,254,255,255, +59,254,255,255,75,254,255,255,84,254,75,255,65,255,72,255,81,255,72,255,68, +255,97,255, +86,254,255,255,70,254,255,255,86,81,70,254,86,81,70,254,86,254,255,255,70, +254,255,255,102,97,86,254,86,81,70,254,84,254,255,255,68,254,255,255,100, +91,84,254,84,75,68,254,84,254,255,255,68,254,255,255,100,91,84,254,84,75, +68,254, +54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254, +70,254,54,254,54,255,255,254,70,254,54,254,52,255,255,254,68,254,52,254, +52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254,52,255,255,254, +68,254,52,254, + +/* PATTERN 0 */ +88,254,255,255,83,254,255,255,75,254,255,255,83,254,255,255,88,254,83,255, +75,255,83,255,88,254,255,255,91,254,88,255,86,254,255,255,81,254,255,255, +65,254,255,255,81,254,255,255,86,254,81,254,70,254,81,254,86,254,81,254, +86,254,81,254, +72,254,255,255,56,254,255,255,88,83,72,254,72,254,255,255,72,254,255,255, +56,254,255,255,88,83,72,254,72,254,255,255,70,254,255,255,54,254,255,255, +86,81,70,254,70,254,255,255,86,254,70,254,86,254,70,254,86,81,70,254,86, +81,70,254, +56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,56,255,255,254, +72,254,56,254,56,255,255,254,72,254,56,254,54,255,255,254,70,254,54,254, +54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254, +70,254,54,254, + +/* PATTERN 1 */ +86,254,255,255,81,254,255,255,73,254,255,255,81,254,255,255,86,254,81,255, +73,255,81,255,86,254,255,255,89,254,86,255,84,254,255,255,75,254,255,255, +59,254,255,255,75,254,255,255,84,254,75,255,65,255,72,255,81,255,72,255, +68,255,97,255, +86,254,255,255,70,254,255,255,86,81,70,254,86,81,70,254,86,254,255,255,70, +254,255,255,102,97,86,254,86,81,70,254,84,254,255,255,68,254,255,255,100, +91,84,254,84,75,68,254,84,254,255,255,68,254,255,255,100,91,84,254,84,75, +68,254, +54,255,255,254,70,254,54,254,54,255,255,254,70,254,54,254,54,255,255,254, +70,254,54,254,54,255,255,254,70,254,54,254,52,255,255,254,68,254,52,254, +52,255,255,254,68,254,52,254,52,255,255,254,68,254,52,254,52,255,255,254, +68,254,52,254, + +/* PATTERN 2 */ +88,254,255,255,83,254,255,255,75,254,255,255,83,254,255,255,88,254,83,255, +75,255,83,255,88,254,255,255,91,254,88,255,86,254,255,255,81,254,255,255, +65,254,255,255,81,254,255,255,86,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255, +72,254,255,255,56,254,255,255,88,83,72,254,72,254,255,255,72,254,255,255, +56,254,255,255,88,83,72,254,72,254,255,255,70,254,255,255,54,254,255,255, +86,81,70,254,70,254,255,255,86,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255, +56,255,255,254,72,254,56,254,56,255,255,254,72,254,56,254,56,255,255,254, +72,254,56,254,56,255,255,254,72,254,56,254,54,255,255,254,70,254,54,254, +54,255,255,254,70,254,54,254,54,254,255,255,255,255,255,255,255,255,255, +255,255,255,255,255, + +/********************************************/ + +/* PATTERN 14 == 0 nostettuna 3:lla */ +35,254,35,254,35,254,35,254,35,255,255,254,35,255,255,254,35,254,35,254, +35,254,35,254,35,255,255,254,35,255,255,254,38,254,38,254,38,254,38,254, +38,255,255,254,38,255,255,254,37,254,37,254,37,254,37,254,38,255,255,254, +53,254,37,254, +42,254,42,254,42,254,42,254,42,255,255,254,42,255,255,254,42,254,42,254, +42,254,42,254,42,255,255,254,42,255,255,254,45,254,45,254,45,254,45,254, +45,255,255,254,45,255,255,254,44,254,44,254,44,254,44,254,45,255,255,254, +60,254,44,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, + +/*****************/ + +/* PATTERN 15 */ +53,255,69,255,53,255,69,255,53,255,69,255,56,255,72,255,53,255,69,255,53, +255,69,255,53,255,69,255,55,255,71,255,53,255,69,255,53,255,69,255,56,255, +72,255,64,255,80,255,56,255,72,255,56,255,72,255,58,255,74,255,55,255,71, +255, +85,254,101,96,101,96,85,96,85,254,101,96,104,99,96,99,85,254,96,85,101,96, +85,96,85,254,96,254,103,98,90,98,85,254,101,96,101,96,88,96,88,254,99,90, +96,87,96,87,104,254,99,254,90,254,104,254,90,254,87,254,87,254,90,87, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, + +51,255,67,255,51,255,67,255,51,255,67,255,54,255,70,255,51,255,67,255,51, +255,67,255,51,255,67,255,53,255,69,255,51,255,67,255,51,255,67,255,54,255, +70,255,58,255,74,255,54,255,70,255,54,255,70,255,56,255,72,255,53,255,69, +255, +83,254,255,255,255,255,255,255,255,255,255,255,86,254,255,255,83,254,255, +255,255,255,255,255,255,255,255,255,85,254,85,254,83,254,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,86,254,255,255,255,255,255,255,88, +254,88,254,85,254,85,254, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, + +51,255,67,255,51,255,67,255,51,255,67,255,54,255,70,255,51,255,67,255,51, +255,67,255,51,255,67,255,53,255,69,255,51,255,67,255,51,255,67,255,54,255, +70,255,58,255,74,255,54,255,70,255,54,255,70,255,88,254,88,254,88,254,88, +254, +83,254,255,255,255,255,255,255,255,255,255,255,86,254,255,255,83,254,255, +255,255,255,255,255,255,255,255,255,85,254,85,254,83,254,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,86,254,255,255,255,255,255,255, +83,88,83,88,96,88,96,88, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, + +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48, +255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255, +67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66, +255, +80,254,96,87,96,87,80,87,80,254,96,87,99,254,255,255,80,254,87,80,96,87, +80,87,80,254,87,254,98,254,98,82,80,254,96,87,96,254,255,255,83,254,90, +85,87,254,255,255,99,254,90,254,85,254,99,254,85,254,82,254,255,255,82, +254, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255, + +53,255,69,255,53,255,69,255,53,255,69,255,56,255,72,255,53,255,69,255,53, +255,69,255,53,255,69,255,55,255,71,255,53,255,69,255,53,255,69,255,56,255, +72,255,64,255,80,255,56,255,72,255,56,255,72,255,58,255,74,255,55,255,71, +255, +85,254,101,96,101,96,85,96,85,254,101,96,104,254,255,255,85,254,96,85,101, +96,85,96,85,254,96,254,103,254,103,87,85,254,101,96,101,254,255,255,88,254, +99,90,96,254,255,255,104,254,99,254,90,254,104,254,90,254,87,254,255,255, +87,254, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, +255,255 + +}; + +pwpmusic Final_Isi={ + "Final Isi theme", + 3, + 5, + fisi_patord, + fisi_trax +}; + diff -r 000000000000 -r acb5694e93d9 pwpzax/Future_Moottori.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwpzax/Future_Moottori.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,52 @@ +unsigned char fmoot_patord[]={ + 0,1, + 2,2,3,3, + 4,5, + 6,6,7,7, + 255 +}; + +char fmoot_trax[8][2][64]={ +/* PATTERN 0 */ +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48,255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255,67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66,255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255, + +/* PATTERN 1 */ +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48,255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255,67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,254,255,255,255,255,255, +255, +254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,99,90,85,98, + +/* PATTERN 2 */ +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48,255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255,67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66,255, +80,254,96,87,96,87,80,87,80,254,96,87,99,90,87,90,80,254,87,80,96,87,80,87,80,254,87,254,98,89,85,89,80,254,96,87,96,87,83,87,83,254,90,85,87,82,87,82,99,254,90,254,85,254,99,254,85,254,82,254,82,254,85,82, + +/* PATTERN 3 */ +53,255,69,255,53,255,69,255,53,255,69,255,56,255,72,255,53,255,69,255,53,255,69,255,53,255,69,255,55,255,71,255,53,255,69,255,53,255,69,255,56,255,72,255,64,255,80,255,56,255,72,255,56,255,72,255,58,255,74,255,55,255,71,255, +85,254,101,96,101,96,85,96,85,254,101,96,104,99,96,99,85,254,96,85,101,96,85,96,85,254,96,254,103,98,90,98,85,254,101,96,101,96,88,96,88,254,99,90,96,87,96,87,104,254,99,254,90,254,104,254,90,254,87,254,87,254,90,87, + +/* PATTERN 4 */ +51,255,67,255,51,255,67,255,51,255,67,255,54,255,70,255,51,255,67,255,51,255,67,255,51,255,67,255,53,255,69,255,51,255,67,255,51,255,67,255,54,255,70,255,58,255,74,255,54,255,70,255,54,255,70,255,56,255,72,255,53,255,69,255, +83,254,255,255,255,255,255,255,255,255,255,255,86,254,255,255,83,254,255,255,255,255,255,255,255,255,255,255,85,254,85,254,83,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,86,254,255,255,255,255,255,255,88,254,88,254,85,254,85,254, + +/* PATTERN 5 */ +51,255,67,255,51,255,67,255,51,255,67,255,54,255,70,255,51,255,67,255,51,255,67,255,51,255,67,255,53,255,69,255,51,255,67,255,51,255,67,255,54,255,70,255,58,255,74,255,54,255,70,255,54,255,70,255,88,254,88,254,88,254,88,254, +83,254,255,255,255,255,255,255,255,255,255,255,86,254,255,255,83,254,255,255,255,255,255,255,255,255,255,255,85,254,85,254,83,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,86,254,255,255,255,255,255,255,83,88,83,88,96,88,96,88, + +/* PATTERN 6 */ +48,255,64,255,48,255,64,255,48,255,64,255,51,255,67,255,48,255,64,255,48,255,64,255,48,255,64,255,50,255,66,255,48,255,64,255,48,255,64,255,51,255,67,255,55,255,71,255,51,255,67,255,51,255,67,255,53,255,69,255,50,255,66,255, +80,254,96,87,96,87,80,87,80,254,96,87,99,254,255,255,80,254,87,80,96,87,80,87,80,254,87,254,98,254,98,82,80,254,96,87,96,254,255,255,83,254,90,85,87,254,255,255,99,254,90,254,85,254,99,254,85,254,82,254,255,255,82,254, + +/* PATTERN 7 */ +53,255,69,255,53,255,69,255,53,255,69,255,56,255,72,255,53,255,69,255,53,255,69,255,53,255,69,255,55,255,71,255,53,255,69,255,53,255,69,255,56,255,72,255,64,255,80,255,56,255,72,255,56,255,72,255,58,255,74,255,55,255,71,255, +85,254,101,96,101,96,85,96,85,254,101,96,104,254,255,255,85,254,96,85,101,96,85,96,85,254,96,254,103,254,103,87,85,254,101,96,101,254,255,255,88,254,99,90,96,254,255,255,104,254,99,254,90,254,104,254,90,254,87,254,255,255,87,254, +}; + +pwpmusic Future_Moottori={ + "Future Moottori", + 2, + 6, + fmoot_patord, + fmoot_trax +}; diff -r 000000000000 -r acb5694e93d9 pwpzax/Go_Mazzembly.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwpzax/Go_Mazzembly.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,50 @@ +#define Q 255 +#define W 254 + +unsigned char gomazm_patord[]={0,1,2,3,4,5,4,6,7,8,7,8,4,5,4,6,7,8,7,8,255}; + +unsigned char gomazm_trax[9][2][64]={ +/* PATTERN 0 */ +82,Q,83,Q,82,Q,80,Q,82,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,85,Q,W,Q,85,Q,W,Q,87,Q,W,Q,80,Q,82,Q,80,Q,74,Q,80,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,64,W,64,W, +50,Q,Q,Q,Q,Q,Q,Q,66,Q,Q,Q,50,Q,Q,Q,50,Q,Q,Q,Q,Q,Q,Q,66,Q,Q,Q,50,Q,Q,Q,48,Q,Q,Q,Q,Q,Q,Q,64,Q,Q,Q,48,Q,Q,Q,48,Q,Q,Q,Q,Q,Q,Q,64,Q,Q,Q,48,Q,Q,Q, + +/* PATTERN 1 */ +82,Q,83,Q,82,Q,80,Q,82,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,85,Q,W,Q,87,Q,W,Q,80,Q,Q,Q,W,Q,Q,Q,80,W,80,W,80,W,80,W,73,Q,Q,Q,W,Q,Q,Q,53,W,Q,Q,69,W,69,W, +50,Q,Q,Q,Q,Q,Q,Q,66,Q,Q,Q,50,Q,Q,Q,50,Q,Q,Q,Q,Q,Q,Q,66,Q,Q,Q,50,Q,Q,Q,48,Q,Q,Q,Q,Q,Q,Q,64,Q,Q,Q,48,Q,Q,Q,55,Q,Q,Q,Q,Q,Q,Q,71,Q,Q,Q,53,Q,Q,Q, + +/* PATTERN 2 */ +82,Q,83,Q,82,Q,80,Q,82,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,85,Q,W,Q,85,Q,W,Q,87,Q,W,Q,80,W,Q,Q,80,W,82,W,80,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q, +50,Q,Q,Q,Q,Q,Q,Q,66,Q,Q,Q,50,Q,Q,Q,50,Q,Q,Q,Q,Q,Q,Q,66,Q,Q,Q,50,Q,Q,Q,48,Q,Q,Q,Q,Q,Q,Q,64,Q,Q,Q,48,Q,Q,Q,48,Q,Q,Q,Q,Q,Q,Q,64,Q,Q,Q,48,Q,Q,Q, + +/* PATTERN 3 */ +74,Q,80,Q,74,Q,73,Q,74,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,66,W,Q,Q,71,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q, +42,Q,Q,Q,Q,Q,Q,Q,58,Q,Q,Q,42,Q,Q,Q,42,Q,Q,Q,Q,Q,Q,Q,58,Q,Q,Q,42,Q,Q,Q,55,Q,Q,Q,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,82,81,75,73,71,70,68,66,65,59,57,55,54,52,50,50, + +/* PATTERN 4 */ +82,W,82,W,82,W,82,W,85,Q,Q,Q,87,Q,Q,Q,87,Q,89,Q,87,Q,89,Q,82,Q,W,Q,Q,Q,Q,Q,80,W,80,W,80,W,80,W,84,Q,Q,Q,85,Q,Q,Q,85,Q,87,Q,85,Q,87,Q,84,Q,87,Q,84,Q,80,Q, +50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,53,Q,69,Q,51,Q,67,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,52,Q,68,Q,50,Q,66,Q, + +/* PATTERN 5 */ +82,W,82,W,82,W,82,W,85,Q,Q,Q,87,Q,Q,Q,87,Q,89,Q,87,Q,89,Q,85,Q,89,Q,85,Q,96,Q,87,Q,Q,Q,W,Q,Q,Q,84,Q,Q,Q,87,Q,84,Q,96,Q,Q,Q,87,Q,Q,Q,84,W,84,W,80,W,80,W, +50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,53,Q,69,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,52,Q,68,W,55,W,71,W, + +/* PATTERN 6 */ +82,W,82,W,82,W,82,W,85,Q,Q,Q,87,Q,Q,Q,87,Q,89,Q,87,Q,89,Q,85,Q,89,Q,85,Q,96,Q,87,Q,Q,Q,W,Q,Q,Q,84,Q,Q,Q,87,Q,84,Q,96,W,Q,Q,96,Q,W,Q,96,W,Q,Q,96,W,103,W, +50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,50,Q,66,Q,53,Q,69,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,Q,64,Q,48,W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,48,W,71,W, + +/* PATTERN 7 */ +69,Q,Q,W,69,W,69,W,72,W,Q,Q,74,Q,Q,W,74,Q,80,Q,74,Q,80,Q,74,Q,80,Q,74,Q,80,Q,67,Q,Q,W,67,W,67,W,71,W,Q,Q,72,Q,Q,W,71,Q,74,Q,71,Q,74,Q,71,Q,74,Q,71,Q,74,Q, +53,Q,69,Q,53,Q,53,Q,69,Q,53,Q,53,Q,69,Q,56,Q,72,Q,56,Q,56,Q,72,Q,56,Q,56,W,72,W,51,Q,67,Q,51,Q,51,Q,67,Q,51,Q,51,Q,67,Q,55,Q,71,Q,55,Q,55,Q,71,Q,55,Q,55,W,71,W, + +/* PATTERN 8 */ +69,Q,Q,W,69,W,69,W,72,W,Q,Q,74,Q,Q,W,74,Q,80,Q,74,Q,80,Q,74,Q,W,Q,74,W,83,W,74,Q,Q,W,71,Q,67,Q,74,Q,Q,W,71,Q,67,Q,83,W,83,W,74,Q,71,Q,67,Q,58,Q,74,Q,71,Q, +53,Q,69,Q,53,Q,53,Q,69,Q,53,Q,53,Q,69,Q,56,Q,72,Q,56,Q,56,Q,72,Q,56,Q,56,Q,72,Q,51,Q,67,Q,51,Q,51,Q,67,Q,51,Q,51,Q,67,Q,58,Q,74,Q,58,Q,58,Q,71,Q,55,Q,58,Q,74,Q +}; + +pwpmusic Go_Mazzembly={ + "Go Mazzembly / Da Aztex theme", + 2, + 5, + gomazm_patord, + gomazm_trax +}; diff -r 000000000000 -r acb5694e93d9 pwpzax/Ikuisuus.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwpzax/Ikuisuus.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,77 @@ +unsigned char iku_patord[]={6,7,0,3,4,5,0,3,2,1,8,9,10,11,8,9,10,11,0,3,0,3,4,5,4,5, +255}; + +#define Q 255 +#define W 254 + +unsigned char iku_trax[12][3][64]={ + +/*PATTERN 0*/ +16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W, +32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,W,16,Q,32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,Q,Q,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,42,Q,Q,W,35,W,19,W, +32,Q,35,Q,34,Q,32,36,39,Q,35,Q,32,Q,35,Q,32,Q,35,Q,34,Q,32,36,39,Q,35,Q,48,Q,39,Q,35,Q,39,Q,35,Q,39,35,42,Q,39,Q,35,Q,39,Q,42,Q,39,Q,35,Q,42,35,39,Q,35,Q,42,Q,35,Q, + +/*PATTERN 1*/ +18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,26,W,26,W,42,W,26,W,42,26,42,W,42,W,26,W,21,W,21,W,37,W,21,W,53,W,Q,Q,Q,Q,Q,Q, +34,Q,Q,W,41,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,37,Q,Q,W,26,Q,Q,W,42,W,37,W,26,Q,Q,W,37,W,26,W,37,Q,Q,W,21,Q,Q,W,48,W,Q,Q,Q,Q,Q,Q, +W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q, + +/*PATTERN 2*/ +16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,16,W,16,W,32,W,16,W,32,16,32,W,W,W,16,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W,19,W,19,W,35,W,19,W,35,19,35,W,51,35,51,W, +32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,W,16,Q,32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,Q,Q,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,42,Q,Q,W,35,W,19,W, +W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q, + +/*PATTERN 3*/ +18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,26,W,26,W,42,W,26,W,42,26,42,W,42,W,26,W,21,W,21,W,37,W,21,W,37,W,21,W,37,W,21,W, +34,Q,Q,W,41,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,37,Q,Q,W,26,Q,Q,W,42,W,37,W,26,Q,Q,W,37,W,26,W,37,Q,Q,W,21,Q,Q,W,48,Q,Q,W,16,W,26,W, +34,Q,39,Q,34,Q,37,Q,35,Q,34,Q,39,Q,34,Q,35,Q,34,Q,39,Q,34,Q,35,Q,34,Q,39,Q,34,Q,42,Q,37,Q,34,Q,27,Q,42,Q,37,Q,26,Q,21,Q,37,Q,41,Q,37,Q,48,Q,41,Q,37,Q,42,Q,26,Q, + +/*PATTERN 4*/ +16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W, +32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,W,16,Q,32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,Q,Q,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,42,Q,Q,W,35,W,19,W, +32,Q,Q,W,34,W,32,W,39,Q,Q,W,32,W,Q,Q,32,Q,Q,W,34,W,32,W,39,Q,Q,W,48,W,Q,W,35,W,39,W,35,Q,Q,W,42,W,39,W,35,Q,Q,W,42,Q,Q,W,35,Q,Q,W,39,Q,Q,W,42,W,Q,Q, + +/*PATTERN 5*/ +18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,26,W,26,W,42,W,26,W,42,26,42,W,42,W,26,W,21,W,21,W,37,W,21,W,37,W,Q,Q,41,25,41,25, +34,Q,Q,W,41,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,37,Q,Q,W,26,Q,Q,W,42,W,37,W,26,Q,Q,W,37,W,26,W,37,Q,Q,W,21,Q,Q,W,48,W,Q,Q,Q,Q,Q,Q, +34,Q,Q,W,34,W,37,W,35,Q,Q,W,39,W,Q,Q,35,Q,Q,W,39,W,34,W,35,Q,Q,W,39,W,34,W,42,Q,Q,W,34,W,27,W,42,Q,Q,W,26,W,21,W,37,W,41,W,37,W,48,W,41,W,Q,Q,Q,Q,Q,Q, + +/*PATTERN 6*/ +32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,34,18,34,18,35,19,35,19,32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,37,21,37,21,37,21,37,21, +16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,Q,W,35,W,19,W,34,Q,Q,W,35,Q,Q,W,16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,35,Q,19,Q,35,Q,21,Q,37,Q,21,Q,37,Q, +32,Q,48,32,48,Q,32,Q,34,Q,50,34,50,34,50,34,35,Q,51,35,51,Q,35,Q,34,Q,50,34,51,35,51,35,32,Q,48,32,48,Q,32,Q,34,50,34,50,34,Q,34,Q,35,Q,35,51,35,Q,51,35,37,Q,37,Q,53,37,21,37, + +/*PATTERN 7*/ +32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,34,18,34,18,35,19,35,19,32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,27,W,Q,Q,Q,Q,48,W, +16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,Q,W,35,W,19,W,34,Q,Q,W,35,Q,Q,W,16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,35,Q,19,Q,35,Q,27,W,48,W,48,W,48,W, +32,Q,48,32,48,Q,32,Q,34,Q,50,34,50,34,50,34,35,Q,51,35,51,Q,35,Q,34,Q,50,34,51,35,51,35,32,Q,48,32,48,Q,32,Q,34,50,34,50,34,Q,34,Q,35,Q,35,51,35,Q,51,35,43,W,43,W,48,W,48,W, + +/*PATTERN 8*/ +16,Q,W,Q,16,Q,W,Q,16,Q,16,Q,16,Q,16,Q,16,Q,W,Q,16,Q,W,Q,16,Q,16,Q,16,Q,16,Q,19,Q,W,Q,19,Q,W,Q,19,Q,19,Q,19,Q,19,Q,19,Q,W,Q,19,Q,W,Q,19,Q,W,Q,19,Q,Q,Q, +32,Q,W,Q,16,Q,W,Q,32,Q,W,Q,16,Q,32,Q,32,Q,W,Q,16,Q,W,Q,32,Q,W,Q,16,Q,32,Q,35,Q,W,Q,19,Q,W,Q,35,Q,W,Q,19,Q,W,Q,35,Q,W,Q,19,Q,35,Q,35,Q,W,Q,19,Q,W,Q, +32,Q,Q,W,48,W,39,W,48,W,39,W,32,W,Q,Q,48,W,39,W,48,W,39,W,35,W,Q,Q,32,W,Q,Q,35,Q,Q,W,51,W,42,W,51,W,42,W,35,W,Q,Q,42,W,51,W,35,W,51,W,35,19,42,26,51,W,35,W, + +/*PATTERN 9*/ +26,Q,W,Q,26,Q,W,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,21,Q,W,Q,21,Q,W,Q,21,Q,21,Q,21,Q,21,Q,21,Q,W,Q,21,Q,W,Q,21,Q,21,Q,21,Q,21,Q, +42,Q,W,Q,26,Q,W,Q,42,Q,W,Q,26,Q,W,Q,42,Q,W,Q,26,Q,42,Q,42,Q,W,Q,26,Q,42,Q,37,Q,W,Q,21,Q,37,Q,37,Q,W,Q,21,Q,W,Q,37,Q,W,Q,21,Q,37,Q,37,Q,21,Q,37,Q,21,Q, +42,Q,Q,W,34,W,42,W,34,W,Q,Q,50,W,42,W,34,Q,Q,W,42,W,34,W,42,W,34,W,42,W,34,W,37,Q,Q,W,41,Q,Q,W,34,Q,Q,W,37,Q,Q,W,41,W,37,W,35,W,19,W,37,W,21,W,32,W,16,W, + +/*PATTERN 10*/ +32,Q,W,Q,16,Q,W,Q,32,Q,32,Q,16,Q,16,Q,32,Q,W,Q,16,Q,W,Q,32,Q,32,Q,16,Q,16,Q,35,Q,W,Q,19,Q,W,Q,35,Q,35,Q,19,Q,19,Q,35,Q,W,Q,35,Q,W,Q,35,Q,W,Q,19,Q,W,Q, +32,Q,W,Q,16,Q,W,Q,32,Q,W,Q,16,Q,W,Q,32,Q,16,Q,32,Q,16,Q,32,Q,W,Q,16,Q,W,Q,35,Q,W,Q,19,Q,W,Q,35,Q,19,Q,35,Q,19,Q,35,Q,W,Q,19,Q,35,Q,35,Q,W,Q,19,Q,W,Q, +32,Q,Q,W,48,W,39,W,48,W,39,W,35,W,32,W,35,Q,Q,W,32,Q,Q,W,48,Q,Q,W,35,W,32,W,35,Q,Q,W,51,W,42,W,W,W,W,W,35,Q,Q,W,42,Q,Q,W,35,Q,Q,W,42,W,19,W,51,W,35,W, + +/*PATTERN 11*/ +39,Q,W,Q,23,Q,W,Q,39,Q,39,Q,23,Q,23,Q,39,Q,W,Q,39,Q,W,Q,39,Q,39,Q,23,Q,23,Q,32,Q,32,Q,16,Q,16,Q,32,Q,W,Q,32,Q,W,Q,32,Q,32,Q,16,Q,16,Q,32,Q,W,Q,16,Q,W,Q, +39,Q,W,Q,23,Q,W,Q,39,Q,W,Q,23,Q,39,Q,39,Q,W,Q,23,Q,W,Q,39,Q,23,Q,39,Q,23,Q,32,Q,16,Q,32,Q,16,Q,32,Q,16,Q,32,Q,16,Q,32,Q,W,Q,Q,Q,Q,Q,32,Q,16,Q,32,Q,16,Q, +55,Q,Q,W,23,W,39,W,43,Q,Q,W,39,W,23,W,39,W,43,W,50,W,43,W,39,W,34,W,39,W,43,W,48,W,39,W,35,W,32,W,48,W,Q,Q,39,W,32,W,48,W,16,W,39,W,16,W,48,W,32,W,64,W,16,W + +}; + +pwpmusic Ikuisuus={ + "Ikuisuus theme", + 3, + 5, + iku_patord, + iku_trax +}; diff -r 000000000000 -r acb5694e93d9 pwpzax/iku_musa.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwpzax/iku_musa.h Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,68 @@ +char patord[]={6,7,0,3,4,5,0,3,2,1,8,9,10,11,8,9,10,11,0,3,0,3,4,5,4,5,99}; + +#define Q 255 +#define W 254 + +char trax[12][3][64]={ + +/*PATTERN 0*/ +16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W, +32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,W,16,Q,32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,Q,Q,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,42,Q,Q,W,35,W,19,W, +32,Q,35,Q,34,Q,32,36,39,Q,35,Q,32,Q,35,Q,32,Q,35,Q,34,Q,32,36,39,Q,35,Q,48,Q,39,Q,35,Q,39,Q,35,Q,39,35,42,Q,39,Q,35,Q,39,Q,42,Q,39,Q,35,Q,42,35,39,Q,35,Q,42,Q,35,Q, + +/*PATTERN 1*/ +18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,26,W,26,W,42,W,26,W,42,26,42,W,42,W,26,W,21,W,21,W,37,W,21,W,53,W,Q,Q,Q,Q,Q,Q, +34,Q,Q,W,41,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,37,Q,Q,W,26,Q,Q,W,42,W,37,W,26,Q,Q,W,37,W,26,W,37,Q,Q,W,21,Q,Q,W,48,W,Q,Q,Q,Q,Q,Q, +W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q, + +/*PATTERN 2*/ +16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,16,W,16,W,32,W,16,W,32,16,32,W,W,W,16,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W,19,W,19,W,35,W,19,W,35,19,35,W,51,35,51,W, +32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,W,16,Q,32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,Q,Q,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,42,Q,Q,W,35,W,19,W, +W,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q, + +/*PATTERN 3*/ +18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,26,W,26,W,42,W,26,W,42,26,42,W,42,W,26,W,21,W,21,W,37,W,21,W,37,W,21,W,37,W,21,W, +34,Q,Q,W,41,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,37,Q,Q,W,26,Q,Q,W,42,W,37,W,26,Q,Q,W,37,W,26,W,37,Q,Q,W,21,Q,Q,W,48,Q,Q,W,16,W,26,W, +34,Q,39,Q,34,Q,37,Q,35,Q,34,Q,39,Q,34,Q,35,Q,34,Q,39,Q,34,Q,35,Q,34,Q,39,Q,34,Q,42,Q,37,Q,34,Q,27,Q,42,Q,37,Q,26,Q,21,Q,37,Q,41,Q,37,Q,48,Q,41,Q,37,Q,42,Q,26,Q, + +/*PATTERN 4*/ +16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,16,W,16,W,32,W,16,W,32,16,32,W,32,W,16,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W,19,W,19,W,35,W,19,W,35,19,35,W,35,W,19,W, +32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,W,16,Q,32,Q,Q,W,39,W,16,W,32,Q,Q,W,39,Q,Q,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,35,Q,Q,W,42,W,19,W,42,Q,Q,W,35,W,19,W, +32,Q,Q,W,34,W,32,W,39,Q,Q,W,32,W,Q,Q,32,Q,Q,W,34,W,32,W,39,Q,Q,W,48,W,Q,W,35,W,39,W,35,Q,Q,W,42,W,39,W,35,Q,Q,W,42,Q,Q,W,35,Q,Q,W,39,Q,Q,W,42,W,Q,Q, + +/*PATTERN 5*/ +18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,18,W,18,W,34,W,18,W,34,18,34,W,34,W,18,W,26,W,26,W,42,W,26,W,42,26,42,W,42,W,26,W,21,W,21,W,37,W,21,W,37,W,Q,Q,41,25,41,25, +34,Q,Q,W,41,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,50,W,18,W,34,Q,Q,W,37,Q,Q,W,26,Q,Q,W,42,W,37,W,26,Q,Q,W,37,W,26,W,37,Q,Q,W,21,Q,Q,W,48,W,Q,Q,Q,Q,Q,Q, +34,Q,Q,W,34,W,37,W,35,Q,Q,W,39,W,Q,Q,35,Q,Q,W,39,W,34,W,35,Q,Q,W,39,W,34,W,42,Q,Q,W,34,W,27,W,42,Q,Q,W,26,W,21,W,37,W,41,W,37,W,48,W,41,W,Q,Q,Q,Q,Q,Q, + +/*PATTERN 6*/ +32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,34,18,34,18,35,19,35,19,32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,37,21,37,21,37,21,37,21, +16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,Q,W,35,W,19,W,34,Q,Q,W,35,Q,Q,W,16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,35,Q,19,Q,35,Q,21,Q,37,Q,21,Q,37,Q, +32,Q,48,32,48,Q,32,Q,34,Q,50,34,50,34,50,34,35,Q,51,35,51,Q,35,Q,34,Q,50,34,51,35,51,35,32,Q,48,32,48,Q,32,Q,34,50,34,50,34,Q,34,Q,35,Q,35,51,35,Q,51,35,37,Q,37,Q,53,37,21,37, + +/*PATTERN 7*/ +32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,34,18,34,18,35,19,35,19,32,16,32,16,32,16,32,16,34,18,34,18,34,18,34,18,35,19,35,19,35,19,35,19,27,W,Q,Q,Q,Q,48,W, +16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,Q,W,35,W,19,W,34,Q,Q,W,35,Q,Q,W,16,Q,Q,W,32,W,16,W,18,Q,Q,W,34,W,18,W,19,Q,35,Q,19,Q,35,Q,27,W,48,W,48,W,48,W, +32,Q,48,32,48,Q,32,Q,34,Q,50,34,50,34,50,34,35,Q,51,35,51,Q,35,Q,34,Q,50,34,51,35,51,35,32,Q,48,32,48,Q,32,Q,34,50,34,50,34,Q,34,Q,35,Q,35,51,35,Q,51,35,43,W,43,W,48,W,48,W, + +/*PATTERN 8*/ +16,Q,W,Q,16,Q,W,Q,16,Q,16,Q,16,Q,16,Q,16,Q,W,Q,16,Q,W,Q,16,Q,16,Q,16,Q,16,Q,19,Q,W,Q,19,Q,W,Q,19,Q,19,Q,19,Q,19,Q,19,Q,W,Q,19,Q,W,Q,19,Q,W,Q,19,Q,Q,Q, +32,Q,W,Q,16,Q,W,Q,32,Q,W,Q,16,Q,32,Q,32,Q,W,Q,16,Q,W,Q,32,Q,W,Q,16,Q,32,Q,35,Q,W,Q,19,Q,W,Q,35,Q,W,Q,19,Q,W,Q,35,Q,W,Q,19,Q,35,Q,35,Q,W,Q,19,Q,W,Q, +32,Q,Q,W,48,W,39,W,48,W,39,W,32,W,Q,Q,48,W,39,W,48,W,39,W,35,W,Q,Q,32,W,Q,Q,35,Q,Q,W,51,W,42,W,51,W,42,W,35,W,Q,Q,42,W,51,W,35,W,51,W,35,19,42,26,51,W,35,W, + +/*PATTERN 9*/ +26,Q,W,Q,26,Q,W,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,26,Q,21,Q,W,Q,21,Q,W,Q,21,Q,21,Q,21,Q,21,Q,21,Q,W,Q,21,Q,W,Q,21,Q,21,Q,21,Q,21,Q, +42,Q,W,Q,26,Q,W,Q,42,Q,W,Q,26,Q,W,Q,42,Q,W,Q,26,Q,42,Q,42,Q,W,Q,26,Q,42,Q,37,Q,W,Q,21,Q,37,Q,37,Q,W,Q,21,Q,W,Q,37,Q,W,Q,21,Q,37,Q,37,Q,21,Q,37,Q,21,Q, +42,Q,Q,W,34,W,42,W,34,W,Q,Q,50,W,42,W,34,Q,Q,W,42,W,34,W,42,W,34,W,42,W,34,W,37,Q,Q,W,41,Q,Q,W,34,Q,Q,W,37,Q,Q,W,41,W,37,W,35,W,19,W,37,W,21,W,32,W,16,W, + +/*PATTERN 10*/ +32,Q,W,Q,16,Q,W,Q,32,Q,32,Q,16,Q,16,Q,32,Q,W,Q,16,Q,W,Q,32,Q,32,Q,16,Q,16,Q,35,Q,W,Q,19,Q,W,Q,35,Q,35,Q,19,Q,19,Q,35,Q,W,Q,35,Q,W,Q,35,Q,W,Q,19,Q,W,Q, +32,Q,W,Q,16,Q,W,Q,32,Q,W,Q,16,Q,W,Q,32,Q,16,Q,32,Q,16,Q,32,Q,W,Q,16,Q,W,Q,35,Q,W,Q,19,Q,W,Q,35,Q,19,Q,35,Q,19,Q,35,Q,W,Q,19,Q,35,Q,35,Q,W,Q,19,Q,W,Q, +32,Q,Q,W,48,W,39,W,48,W,39,W,35,W,32,W,35,Q,Q,W,32,Q,Q,W,48,Q,Q,W,35,W,32,W,35,Q,Q,W,51,W,42,W,W,W,W,W,35,Q,Q,W,42,Q,Q,W,35,Q,Q,W,42,W,19,W,51,W,35,W, + +/*PATTERN 11*/ +39,Q,W,Q,23,Q,W,Q,39,Q,39,Q,23,Q,23,Q,39,Q,W,Q,39,Q,W,Q,39,Q,39,Q,23,Q,23,Q,32,Q,32,Q,16,Q,16,Q,32,Q,W,Q,32,Q,W,Q,32,Q,32,Q,16,Q,16,Q,32,Q,W,Q,16,Q,W,Q, +39,Q,W,Q,23,Q,W,Q,39,Q,W,Q,23,Q,39,Q,39,Q,W,Q,23,Q,W,Q,39,Q,23,Q,39,Q,23,Q,32,Q,16,Q,32,Q,16,Q,32,Q,16,Q,32,Q,16,Q,32,Q,W,Q,Q,Q,Q,Q,32,Q,16,Q,32,Q,16,Q, +55,Q,Q,W,23,W,39,W,43,Q,Q,W,39,W,23,W,39,W,43,W,50,W,43,W,39,W,34,W,39,W,43,W,48,W,39,W,35,W,32,W,48,W,Q,Q,39,W,32,W,48,W,16,W,39,W,16,W,48,W,32,W,64,W,16,W + +}; diff -r 000000000000 -r acb5694e93d9 pwpzax/zaxplay.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pwpzax/zaxplay.c Tue May 18 04:25:44 2010 +0300 @@ -0,0 +1,313 @@ +/* + * PWP music player. Uses /dev/dsp (8-bit unsigned raw) + * + * compile: gcc zaxplay.c -o zaxplay -lm + * + * run: zaxplay + * + */ + +#include +#include + +#include +/* #include */ + +#include +#include +#include + +typedef struct +{ + char*title; + int numchans; + int tempo; + + unsigned char*patord; + unsigned char*tracks; +}pwpmusic; + +#include "Final_Isi.h" +#include "Future_Moottori.h" +#include "Go_Mazzembly.h" +#include "Ikuisuus.h" + +struct { + int wvlgt; + int wvleft; + int wvphase; +} +gb_ch[3]; +#define ch gb_ch + +int fd; +int freq=8000; + +pwpmusic*tune; +pwpmusic*tunes[]={&Final_Isi,&Future_Moottori,&Go_Mazzembly,&Ikuisuus}; +#define NUMTUNES 4 + +gb_gen1chan(char*d,int l,int freq) +{ + int ph=128*256; + while(l--){ + *d++=64+((ph>>8)&0x80); + ph+=freq; + } +} + +gb_beepemu(char*d,int l) +{ + static int pf=0; + int + fq0=ch[0].wvlgt, + fq1=ch[1].wvlgt, + fq2=ch[2].wvlgt,fq; + if(ch[0].wvphase==0)fq0=32768; + if(ch[1].wvphase==0)fq1=32768; + if(ch[2].wvphase==0)fq2=32768; + + if(fq0>fq1){int tmp=fq0;fq0=fq1;fq1=tmp;} + if(fq0>fq2){int tmp=fq0;fq0=fq2;fq2=tmp;} + if(fq1>fq2){int tmp=fq1;fq1=fq2;fq2=tmp;} + + if(pf&1){ + if(pf&2)fq=fq1;else fq=fq2; + if(!fq)fq=fq0; + }else{ + fq=fq0; + if(fq==32768){fq=fq1; + if(fq==32768)fq=fq2;} + } + if(fq==32768)memset(d,128,l);else + { + fq=(65536*256)/fq; + gb_gen1chan(d,l,fq); + } + pf++; +} + +gb_genwave(char*d,int l) /* tee oBtiMoITU versio joskus */ +{ + int remain=0; + + l<<=8; + while(l){ + int min=ch[0].wvleft,w,sum; + w=ch[1].wvleft;if(w255)sum=255; + + if(min>l)min=l; l-=min; + memset(d,sum,(min+remain)>>8); + d+=((min+remain)>>8); + remain=(min+remain)&255; + + {int i=0; + for(;i<3;i++){ + w=ch[i].wvleft-=min; + if(!w){ + ch[i].wvleft=ch[i].wvlgt; /* add pulseratio */ + ch[i].wvphase=0-ch[i].wvphase; + } + }} + } +} + +/* my_memset, ... */ + +/* +gb_genwave_opt(char*buf,int endptr) +{ + #define SETTILL(a) \ + {int bord=w##a,rs;if(bord>endptr)goto last;\ + rs=sum;if(rs&~0xff){if(rs<0)rs=0;else rs=255;}\ + memset(buf+(ptr>>8),rs,2+((bord-ptr)>>8));ptr=bord;\ + ch[a].wvphase=0-ch[a].wvphase;\ + sum+=(ch[a].wvphase)<<1;\ + w##a=ptr+ch[a].wvlgt;} + #define HANDLE(s0,s1,s2) \ + {SETTILL(s0); \ + if(w##s0<=w##s1)goto w##s0##w##s1##w##s2;else \ + if(w##s0<=w##s2)goto w##s1##w##s0##w##s2;else \ + goto w##s1##w##s2##w##s0;} + + int ptr=0,sum=ch[0].wvphase+ + ch[1].wvphase+ + ch[2].wvphase; + + int w0=ch[0].wvleft, + w1=ch[1].wvleft, + w2=ch[2].wvleft; + + endptr<<=8; + + w1w2w0:HANDLE(1,2,0); + w2w1w0:HANDLE(2,1,0); + w0w2w1:HANDLE(0,2,1); + w2w0w1:HANDLE(2,0,1); + w0w1w2:HANDLE(0,1,2); + w1w0w2:HANDLE(1,0,2); + + last: + {int rs=sum; + if(rs&~0xff){if(rs<0)rs=0;else rs=255;} + memset(buf+(ptr>>8),rs,(endptr-ptr)>>8);} + + ch[0].wvleft=w0-endptr; + ch[1].wvleft=w1-endptr; + ch[2].wvleft=w2-endptr; + + #undef SETTILL +} +*/ + +gb_genwave_opt(char*buf,int endptr) +{ + int ptr=0,sum=ch[0].wvphase+ + ch[1].wvphase+ + ch[2].wvphase; + + #define w0 ch[0].wvleft + #define w1 ch[1].wvleft + #define w2 ch[2].wvleft + +/* volatile int w0=ch[0].wvleft, + w1=ch[1].wvleft, + w2=ch[2].wvleft;*/ + + endptr<<=8; + + #define SETTILL(a) \ + {int bord=w##a,rs;if(bord>endptr)goto last;\ + rs=sum;if(rs&~0xff){if(rs<0)rs=0;else rs=255;}\ + memset(buf+(ptr>>8),rs,2+((bord-(ptr&~0xff))>>8));ptr=bord;\ + ch[a].wvphase=0-ch[a].wvphase;\ + sum+=(ch[a].wvphase)<<1;\ + w##a=ptr+ch[a].wvlgt;} + + if(w0<=w1){ + if(w1<=w2)goto w0w1w2;else + if(w2<=w0)goto w2w0w1;else + goto w0w2w1; + }else{ + if(w0<=w2)goto w1w0w2;else + if(w2<=w1)goto w2w1w0; //.. else w1w2w0 (next) + } + + w1w2w0: + SETTILL(1); + if(w1<=w2)goto w1w2w0;else + if(w1<=w0)goto w2w1w0;else //.. if(w1>w0)goto w2w0w1; + goto w2w0w1; + w2w1w0: + SETTILL(2); + if(w2<=w1)goto w2w1w0;else + if(w2<=w0)goto w1w2w0;else + goto w1w0w2; + + w0w2w1: + SETTILL(0); + if(w0<=w2)goto w0w2w1;else + if(w0<=w1)goto w2w0w1;else //.. if(w0>w1)goto w2w1w0; + goto w2w1w0; + w2w0w1: + SETTILL(2); + if(w2<=w0)goto w2w0w1;else + if(w2<=w1)goto w0w2w1;else + goto w0w1w2; //.. not reqd + + w0w1w2: + SETTILL(0); + if(w0<=w1)goto w0w1w2;else + if(w0<=w2)goto w1w0w2;else //.. if(w0>w2)goto w1w2w0; + goto w1w2w0; + + w1w0w2: + SETTILL(1); + if(w1<=w0)goto w1w0w2;else + if(w1<=w2)goto w0w1w2;else + goto w0w2w1; + + last: + {int rs=sum; + if(rs&~0xff){if(rs<0)rs=0;else rs=255;} + memset(buf+(ptr>>8),rs,2+((endptr-ptr)>>8));} + + ch[0].wvleft=w0-endptr; + ch[1].wvleft=w1-endptr; + ch[2].wvleft=w2-endptr; + + #undef SETTILL +} +#define VOLUME 32 + +playnote(char*buf) /* ==> playtick */ +{ + static int ord=0,row=0; + int chan=0,pat=tune->patord[ord]; + + for(;channumchans;chan++){ + unsigned char b=tune->tracks[(pat*tune->numchans+chan)*64+row]; + + if(b==254)gb_ch[chan].wvphase=0;else + if(b!=255){ + b=(b>>4)*12+(b&15); + gb_ch[chan].wvlgt= + ((double)(400.0*256)/pow(1.059465,b)); + + if(gb_ch[chan].wvlgt<512) + gb_ch[chan].wvlgt=512; + + gb_ch[chan].wvleft=gb_ch[chan].wvlgt/(chan+2); + gb_ch[chan].wvphase=VOLUME; + } + } + + gb_genwave(buf,tune->tempo*freq/73); + write(fd,buf,tune->tempo*freq/73); + +/* {int j=4;for(;j;j--){ + gb_beepemu(buf,tune->tempo*freq/(73*4)); + write(fd,buf,tune->tempo*freq/(73*4));}}*/ + + row++;if(row==64){ + row=0;pat=tune->patord[++ord]; + if(pat==255)ord=0; + } +} + +playzax() +{ + int i=0; + char*buf=malloc(tune->tempo*freq/73); + fd=open("/dev/dsp",O_WRONLY); + + for(;i<3;i++){ + gb_ch[i].wvlgt=gb_ch[i].wvleft=32000;gb_ch[i].wvphase=0;} + + for(;;){ + playnote(buf); + } +} + +int main(int argc,char**argv) +{ + if(argc!=2) + { + fprintf(stderr,"usage: %s \n", + argv[0],NUMTUNES-1); + return 0; + } + + {int i=argv[1][0]-'0'; + if(i<0 || i>=NUMTUNES)i=rand()%NUMTUNES; + tune=tunes[i]; + } + + playzax(); + return 0; +}