TempleOSCDV4.06.ISO
This commit is contained in:
1 parent
6fe38d2d9d
commit
b632ab9a4f
261 files changed
+6282
-5801
No files matched your search
@@ -12,23 +12,23 @@ U0 Balloon()
|
||||
|
||||
CLI
|
||||
|
||||
OutU8(VGAP_INDEX,VGAR_MAP_MASK);
|
||||
OutU8(VGAP_IDX,VGAR_MAP_MASK);
|
||||
OutU8(VGAP_DATA,0xF);
|
||||
MemSetI64(0xA0000,0,640*480/64);
|
||||
MemSetI64(text.vga_alias,0,640*480/64);
|
||||
|
||||
OutU8(VGAP_INDEX,VGAR_MAP_MASK);
|
||||
OutU8(VGAP_IDX,VGAR_MAP_MASK);
|
||||
OutU8(VGAP_DATA,RED+GREEN+8);
|
||||
for (k=100;k<150;k++) {
|
||||
|
||||
for (i=0;i<20;i++)
|
||||
for (j=0;j<3;j++)
|
||||
*(0xA0000+0x1000+(i+k)*640/8+j)(U8 *)=a[i*3+j];
|
||||
*(text.vga_alias(I64)+0x1000+(i+k)*640/8+j)(U8 *)=a[i*3+j];
|
||||
|
||||
BusyWait(40000);
|
||||
|
||||
for (i=0;i<20;i++)
|
||||
for (j=0;j<3;j++)
|
||||
*(0xA0000+0x1000+(i+k)*640/8+j)(U8 *)=0;
|
||||
*(text.vga_alias(I64)+0x1000+(i+k)*640/8+j)(U8 *)=0;
|
||||
}
|
||||
|
||||
STI
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -22,11 +22,11 @@ I64 TopDisk(I64 pole)
|
||||
|
||||
I64 PosInStk(I64 pole,I64 disk)
|
||||
{
|
||||
I64 result=0,i;
|
||||
I64 res=0,i;
|
||||
for (i=NUM_DISKS-1;i>disk;i--)
|
||||
if (disks_pole[i]==pole)
|
||||
result++;
|
||||
return result;
|
||||
res++;
|
||||
return res;
|
||||
}
|
||||
|
||||
U0 SetDisksRestXY()
|
||||
|
||||
@@ -17,7 +17,7 @@ F64 angles[ANGLES]={
|
||||
class Turtle
|
||||
{
|
||||
F64 x,y,z,speed,é,w;
|
||||
I64 dé_index;
|
||||
I64 dé_idx;
|
||||
CColorROPU16 edge,middle;
|
||||
Bool ends,first;
|
||||
} tt;
|
||||
@@ -39,7 +39,7 @@ U0 TurtleMicroMove(Turtle *t,F64 dt)
|
||||
{
|
||||
t->x+=dt*t->speed*Cos(t->é);
|
||||
t->y+=dt*t->speed*Sin(t->é);
|
||||
t->é=Wrap(t->é+dt*angles[t->dé_index]);
|
||||
t->é=Wrap(t->é+dt*angles[t->dé_idx]);
|
||||
}
|
||||
|
||||
U0 TurtleEnd(CDC *dc,Turtle *t,CColorROPU16 edge,CColorROPU16 middle,F64 é)
|
||||
@@ -88,7 +88,7 @@ U0 TurtleInit(Turtle *t)
|
||||
t->z=5;
|
||||
t->edge=BLACK;
|
||||
t->middle=YELLOW;
|
||||
t->dé_index=ANGLES/2;
|
||||
t->dé_idx=ANGLES/2;
|
||||
t->first=TRUE;
|
||||
t->ends=TRUE;
|
||||
}
|
||||
@@ -98,7 +98,7 @@ U0 DrawIt(CTask *,CDC *dc)
|
||||
Turtle t2;
|
||||
MemCpy(&t2,&tt,sizeof(Turtle));
|
||||
GrPrint(dc,0,0,"Layer:%f Speed:%f é:%5.1f dé:%5.1f Width:%f",
|
||||
tt.z,tt.speed,tt.é*180/ã,angles[tt.dé_index]*180/ã,tt.w);
|
||||
tt.z,tt.speed,tt.é*180/ã,angles[tt.dé_idx]*180/ã,tt.w);
|
||||
|
||||
TurtleMove(dc,&t2,RED,LTRED);
|
||||
dc->color=LTRED;
|
||||
@@ -205,12 +205,12 @@ U0 Lattice()
|
||||
case 0:
|
||||
switch (a2.u8[0]) {
|
||||
case SC_CURSOR_LEFT:
|
||||
if (tt.dé_index)
|
||||
tt.dé_index--;
|
||||
if (tt.dé_idx)
|
||||
tt.dé_idx--;
|
||||
break;
|
||||
case SC_CURSOR_RIGHT:
|
||||
if (tt.dé_index<ANGLES-1)
|
||||
tt.dé_index++;
|
||||
if (tt.dé_idx<ANGLES-1)
|
||||
tt.dé_idx++;
|
||||
break;
|
||||
case SC_CURSOR_UP:
|
||||
tt.speed+=TURTLE_SPEED_STEP;
|
||||
|
||||
Binary file not shown.
@@ -9,22 +9,22 @@ Complex *PoleZeroFind(I64 x,I64 y)
|
||||
{
|
||||
I64 i;
|
||||
F64 dd,best_dd=MAX_F64;
|
||||
Complex *result=NULL;
|
||||
Complex *res=NULL;
|
||||
for (i=0;i<NUM_POLES;i++) {
|
||||
dd=Sqr(poles[i].x-x)+Sqr(poles[i].y-y);
|
||||
if (dd<best_dd) {
|
||||
best_dd=dd;
|
||||
result=&poles[i];
|
||||
res=&poles[i];
|
||||
}
|
||||
}
|
||||
for (i=0;i<NUM_ZEROS;i++) {
|
||||
dd=Sqr(zeros[i].x-x)+Sqr(zeros[i].y-y);
|
||||
if (dd<best_dd) {
|
||||
best_dd=dd;
|
||||
result=&zeros[i];
|
||||
res=&zeros[i];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return res;
|
||||
}
|
||||
|
||||
F64 F(Complex *x)
|
||||
@@ -32,9 +32,9 @@ F64 F(Complex *x)
|
||||
F64 m,a;
|
||||
Complex num,denom,n1;
|
||||
|
||||
CPoly(&num, x,zeros,NUM_ZEROS);
|
||||
CPoly(&denom,x,poles,NUM_POLES);
|
||||
CDiv(&num,&denom,&n1);
|
||||
CPoly(&num, NUM_ZEROS,zeros,x);
|
||||
CPoly(&denom,NUM_POLES,poles,x);
|
||||
CDiv(&n1,&num,&denom);
|
||||
|
||||
R2P(&m,&a,n1.x,n1.y);
|
||||
if (ip.rb)
|
||||
@@ -74,7 +74,7 @@ U0 Draw()
|
||||
tempm[i]=JobQue(&MPDraw,Fs,i,0);
|
||||
y_total=0;
|
||||
for (i=0;i<mp_cnt;i++)
|
||||
y_total+=JobResultGet(tempm[i])(F64);
|
||||
y_total+=JobResGet(tempm[i])(F64);
|
||||
|
||||
if (!y_total) break;
|
||||
scale*=7*GR_WIDTH*GR_HEIGHT/y_total;
|
||||
|
||||
Reference in new issue
Block a user