home *** CD-ROM | disk | FTP | other *** search
-
- /* PREDATOR Software */
-
- struct DWORDREGS {
- unsigned int eax;
- unsigned int ebx;
- unsigned int ecx;
- unsigned int edx;
- unsigned int esi;
- unsigned int edi;
- unsigned int cflag;
- };
- #define __FILLER(a) unsigned short a;
-
- struct WORDREGS {
- unsigned short ax; __FILLER(_1)
- unsigned short bx; __FILLER(_2)
- unsigned short cx; __FILLER(_3)
- unsigned short dx; __FILLER(_4)
- unsigned short si; __FILLER(_5)
- unsigned short di; __FILLER(_6)
- unsigned int cflag;
- };
-
- struct BYTEREGS {
- unsigned char al, ah; __FILLER(_1)
- unsigned char bl, bh; __FILLER(_2)
- unsigned char cl, ch; __FILLER(_3)
- unsigned char dl, dh; __FILLER(_4)
- };
-
- union REGS {
- struct DWORDREGS x;
- struct WORDREGS w;
- struct BYTEREGS h;
- };
- #define _REGS REGS
-
-
-
- #define loop(a,b,c,d) for(a=(b);a<(c);a+=(d))
- #define loopk(a,b,c,d) for(a=(b);a!=(c);a+=(d))
- #define xrnd(n) (rand()%(n))
- #define xlimit(a,b,c) {if(a<b) a=b;if(a>c) a=c;}
- #define xmem(a) *((xbyte *)(a))
-
- #define xbyte unsigned char
- #define xword unsigned int
- #define zword unsigned short int
- #define zint short int
- #define dd double
- #define ff float
- #define pi 3.141592653589
-
-
- #define fix 4096
- #define fx 12
-
- #define lo(n) ((n)>>fx)
- #define hi(n) ((n)<<fx)
-
- void *malloc();
-
- #define f1 1059
- #define f2 1060
- #define f3 1061
- #define f4 1062
- #define f5 1063
- #define f6 1064
- #define f7 1065
- #define f8 1066
- #define f9 1067
- #define f10 1068
-
- #define ent 13
- #define bsp 8
- #define tab 9
- #define esc 27
-
- #define ins 1082
- #define hom 1071
- #define pup 1073
- #define del 1083
- #define end 1079
- #define pdo 1081
- #define up 1072
- #define dow 1080
- #define lef 1075
- #define rig 1077
-
-
-
- #define m80x25x16 0x2
- #define m80x30x16 0x50
- #define m80x43x16 0x51
- #define m80x60x16 0x52
-
- #define m132x25x16 0x53
- #define m132x30x16 0x54
- #define m132x43x16 0x55
- #define m132x60x16 0x56
-
- #define m320x200x256 0x13
- #define m640x400x256 0x5c
- #define m640x480x256 0x5d
- #define m800x600x256 0x5e
- #define m1024x768x256 0x62
-
- #define t640x400x256 45
- #define t640x480x256 46
- #define t800x600x256 47
-
- #define m512x480x32k 0x70
- #define m640x480x32k 0x74
- #define m800x600x32k 0x76
-
- #define m640x480x16m 0x6c
-
-
-
- int key=0,code=0;
- xbyte *video=(xbyte *)0x000a0000;
- union REGS re;
-
-
- xkeyboard()
- {
- if(_bios_keybrd(1))
- {
- key=_bios_keybrd(0);
- code=key>>8;
- key&=0x00ff;
- if(key==0) key=code+1000;
- }
- else {key=0;code=0;}
- return(key);
- }
-
- xvgamode(n)
- {
- re.w.ax=n;
- int386(0x10,&re,&re);
-
- re.w.ax=0x0305; /* fast keyb. */
- re.w.bx=0;
- int386(0x16,&re,&re);
- }
-
- xcolor(n,r,g,b)
- {
- int o=0x03c8;
-
- outp(o,n);
- o++;
- outp(o,r>>2);
- outp(o,g>>2);
- outp(o,b>>2);
- }
-
- xrainbow(n1,n2,r1,g1,b1,r2,g2,b2)
- {
- int i,n;
-
- n=(n2-n1);
- r2=hi(r2-r1)/n;
- g2=hi(g2-g1)/n;
- b2=hi(b2-b1)/n;
- r1=hi(r1);
- g1=hi(g1);
- b1=hi(b1);
-
- loop(i,n1,n2+1,1)
- {
- xcolor(i,lo(r1),lo(g1),lo(b1));
- r1+=r2;
- g1+=g2;
- b1+=b2;
- }
- }
-
-