home *** CD-ROM | disk | FTP | other *** search
/ CD-X 3 / cdx_03.iso / democomp / demo / _megadmo.arj / XDEF3.C < prev   
Encoding:
C/C++ Source or Header  |  1995-10-28  |  2.9 KB  |  181 lines

  1.  
  2. /* PREDATOR Software */
  3.  
  4. struct DWORDREGS {
  5.     unsigned int eax;
  6.     unsigned int ebx;
  7.     unsigned int ecx;
  8.     unsigned int edx;
  9.     unsigned int esi;
  10.     unsigned int edi;
  11.     unsigned int cflag;
  12. };
  13.  #define __FILLER(a) unsigned short a;
  14.  
  15. struct WORDREGS {
  16.     unsigned short ax;  __FILLER(_1)
  17.     unsigned short bx;  __FILLER(_2)
  18.     unsigned short cx;  __FILLER(_3)
  19.     unsigned short dx;  __FILLER(_4)
  20.     unsigned short si;  __FILLER(_5)
  21.     unsigned short di;  __FILLER(_6)
  22.     unsigned int cflag;
  23. };
  24.  
  25. struct BYTEREGS {
  26.     unsigned char al, ah;  __FILLER(_1)
  27.     unsigned char bl, bh;  __FILLER(_2)
  28.     unsigned char cl, ch;  __FILLER(_3)
  29.     unsigned char dl, dh;  __FILLER(_4)
  30. };
  31.  
  32. union REGS {
  33.     struct DWORDREGS x;
  34.     struct WORDREGS  w;
  35.     struct BYTEREGS  h;
  36. };
  37. #define _REGS REGS
  38.  
  39.  
  40.  
  41. #define loop(a,b,c,d)     for(a=(b);a<(c);a+=(d))
  42. #define loopk(a,b,c,d) for(a=(b);a!=(c);a+=(d))
  43. #define xrnd(n)     (rand()%(n))
  44. #define xlimit(a,b,c)     {if(a<b) a=b;if(a>c) a=c;}
  45. #define xmem(a)     *((xbyte *)(a))
  46.  
  47. #define xbyte    unsigned char
  48. #define xword   unsigned int
  49. #define zword   unsigned short int
  50. #define zint    short int
  51. #define dd    double
  52. #define ff    float
  53. #define pi     3.141592653589
  54.  
  55.  
  56. #define fix 4096
  57. #define fx  12
  58.  
  59. #define lo(n)  ((n)>>fx)
  60. #define hi(n)  ((n)<<fx)
  61.  
  62. void *malloc();
  63.  
  64. #define f1 1059
  65. #define f2 1060
  66. #define f3 1061
  67. #define f4 1062
  68. #define f5 1063
  69. #define f6 1064
  70. #define f7 1065
  71. #define f8 1066
  72. #define f9 1067
  73. #define f10 1068
  74.  
  75. #define ent 13
  76. #define bsp 8
  77. #define tab 9
  78. #define esc 27
  79.  
  80. #define ins 1082
  81. #define hom 1071
  82. #define pup 1073
  83. #define del 1083
  84. #define end 1079
  85. #define pdo 1081
  86. #define up  1072
  87. #define dow 1080
  88. #define lef 1075
  89. #define rig 1077
  90.  
  91.  
  92.  
  93. #define m80x25x16 0x2
  94. #define m80x30x16 0x50
  95. #define m80x43x16 0x51
  96. #define m80x60x16 0x52
  97.  
  98. #define m132x25x16 0x53
  99. #define m132x30x16 0x54
  100. #define m132x43x16 0x55
  101. #define m132x60x16 0x56
  102.  
  103. #define m320x200x256  0x13
  104. #define m640x400x256  0x5c
  105. #define m640x480x256  0x5d
  106. #define m800x600x256  0x5e
  107. #define m1024x768x256 0x62
  108.  
  109. #define t640x400x256  45
  110. #define t640x480x256  46
  111. #define t800x600x256  47
  112.  
  113. #define m512x480x32k 0x70
  114. #define m640x480x32k 0x74
  115. #define m800x600x32k 0x76
  116.  
  117. #define m640x480x16m 0x6c
  118.  
  119.  
  120.  
  121. int key=0,code=0;
  122. xbyte *video=(xbyte *)0x000a0000;
  123. union REGS re;
  124.  
  125.  
  126. xkeyboard()
  127. {
  128.     if(_bios_keybrd(1)) 
  129.     {
  130.         key=_bios_keybrd(0);
  131.         code=key>>8;
  132.         key&=0x00ff;
  133.         if(key==0) key=code+1000;
  134.     }
  135.     else {key=0;code=0;}
  136.     return(key);
  137. }
  138.  
  139. xvgamode(n)
  140. {
  141.     re.w.ax=n;
  142.     int386(0x10,&re,&re);
  143.  
  144.     re.w.ax=0x0305; /* fast keyb. */
  145.     re.w.bx=0;
  146.     int386(0x16,&re,&re);
  147. }
  148.  
  149. xcolor(n,r,g,b)
  150. {
  151.     int o=0x03c8;
  152.  
  153.     outp(o,n);
  154.     o++;
  155.     outp(o,r>>2);
  156.     outp(o,g>>2);
  157.     outp(o,b>>2);
  158. }
  159.  
  160. xrainbow(n1,n2,r1,g1,b1,r2,g2,b2)
  161. {
  162.     int i,n;
  163.  
  164.     n=(n2-n1);
  165.     r2=hi(r2-r1)/n;
  166.     g2=hi(g2-g1)/n;
  167.     b2=hi(b2-b1)/n;
  168.     r1=hi(r1);
  169.     g1=hi(g1);
  170.     b1=hi(b1);
  171.  
  172.     loop(i,n1,n2+1,1)
  173.     {
  174.         xcolor(i,lo(r1),lo(g1),lo(b1));
  175.         r1+=r2;
  176.         g1+=g2;
  177.         b1+=b2;
  178.     }
  179. }
  180.  
  181.