Example #1
0
U0 Main() {
    "Julia Set Generator\n";
    SettingsPush;

    I64 k,j;
    CBGR bgr;
    for (k=0; k<16; k++) {
        j=0xFF*k/15;
        bgr.b=j;
        bgr.g=j;
        bgr.r=j;
        SetVGAPaletteColor(k, bgr);
    }

    CDC *dc=DCAlias;
    I64 row, col;
    for (row=0; row<ROWS; row++) {
        for (col=0; col<COLS; col++) {
            F64 r=LEFT+ToF64(COL_INC*col), i=BOTTOM+ToF64(ROW_INC*row);
            dc->color=getColor(-0.8, 0.156, r, i);
            I64 x=col*(640/COLS), y=row*(480/ROWS);
            GrRect(dc, x, y, 640/COLS, 480/ROWS);
        }
    }
    PressAKey;
    DCFill(dc);
    DCDel(dc);

    SettingsPop;
}
Example #2
0
U0 TimeIns()
{
  I64 start1,end1,start2,end2,overhead_time,test_time;
  I64 reg i,reg temp;
  Bool old_preempt=Preempt(OFF);

  CPURep;

//Measure Loop Overhead
  start1=GetTimeStamp;
  for (i=0;i<SAMPLE_SIZE;i++) {
  }
  end1=GetTimeStamp;
  overhead_time=end1-start1;

//Measure remainder...
  start2=GetTimeStamp;
  for (i=0;i<SAMPLE_SIZE;i++)
     temp=i%0x400;
  end2=GetTimeStamp;
  test_time=end2-start2;
  "Remainder Version #1 Cycles\t: %10.5f\n",
    ToF64(test_time-overhead_time)/SAMPLE_SIZE;

//Measure remainder...
  start2=GetTimeStamp;
  for (i=0;i<SAMPLE_SIZE;i++)
     temp=i&0x3FF;
  end2=GetTimeStamp;
  test_time=end2-start2;
  "Remainder Version #2 Cycles\t: %10.5f\n",
    ToF64(test_time-overhead_time)/SAMPLE_SIZE;

  Preempt(old_preempt);
}
U0 Init(CDC *dc)
{
  I64 i,w=Fs->win_pixel_width,h=Fs->win_pixel_height;
  F64 scale=h/5.0;
  DocClear;
  DCFill(dc);
  dc->color=BLACK;
  GrLine(dc,0,h/2,w-1,h/2);
  GrLine(dc,w/2,0,w/2,h-1);
  for (i=-2;i<=2;i++) {
    dc->color=BLACK;
    GrLine(dc,w/2-3,h/2-scale*i,w/2+3,h/2-scale*i);
    if (i) {
      dc->color=DKGRAY;
      GrPrintF(dc,w/2+5,h/2-scale*i-FONT_HEIGHT/2,"%5.1f",ToF64(i));
    }
  }
  for (i=-4;i<=4;i++) {
    dc->color=BLACK;
    GrLine(dc,w/2+scale*i,h/2-3,w/2+scale*i,h/2+3);
    if (i) {
      dc->color=DKGRAY;
      GrPrintF(dc,w/2+scale*i-7*FONT_WIDTH/2,h/2+5+FONT_HEIGHT,"%5.1f*T",ToF64(i));
    }
  }
}
Example #4
0
I64 getColor(F64 cr, F64 ci, F64 zr, F64 zi) {
    I64 i=0;
    F64 tzr=0.0, tzi=0.0;
    while(i<ITERS && ((zr*zr + zi*zi) < 4.0)) {
        i++;
        tzr=zr*zr-zi*zi+cr;
        tzi=2.0*zr*zi+ci;
        zr=tzr;
        zi=tzi;
    }
    return ToI64((ToF64(i)/ITERS)*15.0);
}
Example #5
0
U0 Main()
{
  F64 t0,f_sum=0,f_val;
  I64 i ,i_sum=0,i_val;

  i_val= 2.0000002 *0x100000000;
  t0=tT;
  for (i=1000000000;i;i--)
    i_sum+=i_val;
  "IntegerSum:%.9f Time:%7.3fs\n",i_sum/ToF64(0x100000000),tT-t0;

  f_val= 2.0000002;
  t0=tT;
  for (i=1000000000;i;i--)
    f_sum+=f_val;
  "FloatSum:%.9f Time:%7.3fs\n",f_sum,tT-t0;
  NewLine;
}
Example #6
0
F64 CompileDemo(U8 *st)
{
  I64 type;
  U8 *ex;
  CLex *lx=LexNew(st,LF_DONT_FREE_BUF);
  F64 result=0;
  Lex(lx);  //Gotta get it started
  "Compile \"%s\"\n",st;
  do {
    if (ex=LexExpression2Bin(lx,&type)) {
      if (type!=IT_F64)
	result=ToF64(Call(ex));
      else
	result=Call(ex)(F64);
      ExpressionBinDel(ex);
    }
    "result=%9.4f\n",result;
    if (lx->token==';')
      Lex(lx);
  } while (lx->token!=TK_EOF);	//end of file?
  LexDel(lx);
  return result;
}