//****************************
//**** Wichtig Model Small ***
//****************************
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
void p(int N,int O,int x,int y,int A,int
B,int C,int D,int f){
int i, P, Q, S, T, E, J, K, L, M;
char c;
if(O){ P=N>>1;
S=N-P;
Q=O>>1;
if(Q){T=O-Q;}else T=0;
J=random(32)+1;K=random(32)+1;
L=random(32)+1;M=random(32)+1;
E=(J*A+K*B+L*C+M*D)/(J+K+L+M)+((random(0x7FFF)+1)%(f+1)-(f>>1));
p(P,Q,x,y,A,K=(A+B)>>1,E,J=(A+D)>>1,f=f>>1);
//Rekursion
p(S,T,x,y+Q,J,E,M=(C+D)>>1,D,f);
//Rekursion
p(S,Q,x+=P,y,K,B,L=(B+C)>>1,E,f);
//Rekursion
p(S,T,x,y+Q,E,L,C,M,f);}
//Rekursion
else{ for(i=x;i<N+x;i++){
//ClusterLinie
switch(random(4)){
case 0: c=A;break;
case 1: c=B;break; //"Zufällig"
Farbe
case 2: c=C;break;
case 3: c=D;break;} //"Zufällig"
Farbe
pokeb(0xA000,y*320+i,c);}}}
//Ausgabe Bildschirm
//**************************************************************************
void palette(char *rgb){
//Set Palette
asm{MOV AX,DS;MOV
ES,AX;MOV DX,rgb;MOV BX,0x1; //Set
Palette
MOV CX,0xFF;MOV AX,0x1012;int 0x10;}}
//Set Palette
//**************************************************************************
//*************************** M A I N **************************************
//**************************************************************************
void main(void){
unsigned char v[512][3];
//PalettenInformation
unsigned char x=0;
//PalettenIndex (von 0..255)
int X,Y;
//LaufVariablen
unsigned char i=0;
for(X=0;X<512;X++){v[X][0]=0;v[X][1]=0;v[X][2]=0;}
//Palette erstmal Null
for(i=0;i<64;i++){
//Palette berechnen
v[i ][0]=
v[256 +i][0]= v[i ][1]= v[256
+i][1]=
v[i+64 ][2]= v[256+ 64+i][2]=
v[i+128][0]= v[256+128+i][0]=
v[i+192][1]= v[256+192+i][1]=
(i<32) ? i+i:126-i-i;}
asm{mov
ax,0x13;int 16;}
//Set Screen 320x200 und 256 Farben
randomize();palette(v[0]);
//Initialize Palette
p(319,199,0,0,random(255),random(255),random(255),random(255),200);
//BuildScreen
while(!kbhit()){
//Rotate Palette bis Tatste gedrückt
palette(v[x++]);
//Set Palette
while((inport(0x3da)&9)!=9);}//FlickerKontrolle
asm{mov
ax,0x3;int 16;}
//Restore TextMode
}
//**************************************************************************
//**************************** Konjetz *************************************
//************************* Ein Programm
***********************************
//************************* von Dave Sun
***********************************
//**************************************************************************