#use80386
#jumptomain NONE
#codesize
#resize FALSE

void main ()
{
//Необходимый видеорежим
  AX=0x13;
  $int 0x10
//Загрузить палитру
  outp(0,0x3C8);
  DX++;
  BL=0;
  do{
    AL=BL>>2;
    outp(AL);
    AL=0;
    outp(AL);
    outp(AL);
    BL++;
  }while(NOTZEROFLAG);
  @GWRITESTR("       SPHINX C-- DEMO Party'2000",byte 255);
  do{
//источник огня
    AX=RAND()%320+64000;  //позиция
    DI><AX;
    AX=RAND()%8+1;  //ширина линейки
    AX+=AX;
    CX><AX;
    AL=RAND()&127+128;  //цвет
    $push DS
    DS=0xA000;
    loop(CX){
      DSBYTE[DI]=AL;
      DSBYTE[DI+640]=AL;
      DI++;
    }
//blur
    DI=5120;
    do{
      BX=2;
      do{
        AX=DSBYTE[DI+BX-2]+DSBYTE[DI+BX+2]+DSBYTE[DI+BX]+DSBYTE[DI+BX+640]/4;
        AX=AX+DSBYTE[DI+BX-640]>>1;
        IF(AL>128)AL-=2;
        ELSE IF(AL>3)AL-=4;
        ELSE AL=0;
        AH=AL;
        DSWORD[DI+BX-1280]=AX;
        DSWORD[DI+BX-1280+320]=AX;
        BX++;
        BX++;
      }while(BX<318);
      DI+=640;
    }while(DI<320*204 );
    $pop DS
    AH=1;
    $int 0x16
  }while(ZEROFLAG);
  @BIOSREADKEY();
  AX=0x3;
  $int 0x10
}

dword rnd=1;

dword RAND()
{
  rnd=rnd*0x48C27395;
}
