repos / gbc

GBC - Go B Compiler
git clone https://github.com/xplshn/gbc.git

gbc / examples
xplshn  ·  2025-08-13

donut.b

B
 1                        b[2000];z[2000
 2                    ];A;B;C;D;E;F;G;H;I;J;
 3              K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;main
 4            (){extrn usleep;A=C=1024;B=D=0;while(1
 5         ){E=0;while(E<2000){b[E]=32;z[E++]=127;}E=G=
 6        0;F=1024;while(G++<90){H=I=0;J=1024;while(I++<
 7     324){M=F+2048;Z=J*M>>10;P=B*E>>10;Q=H*M>>10;R=P-(A*Q
 8    >>10);S=A*E>>10;T=5242880+1024*S+sx64(B*Q);U=F*///////
 9   H>>10;X=40+30*/**/                    (sx64(D*Z)-sx64(C*
10  R))/T;Y=12+15/***/                      *(sx64(D*R)+sx64(C
11  *Z))/T;N=sx64((-                          B*U-D*((-sx64(A*
12U)>>10)+P)-J*(F*C                            >>10)>>10)-S>>7);
13O=X+80*Y;V=sx64                                (T-5242880>>15)
14;if(22>Y&Y>0&X>                                000&80>X&V<z[O]
15){z[O]=V;b[O]=*                                (".,-~:;=!*#$@"+
16(N>0?N:0));}L=J;                               J-=5*H>>8;H+=5*
17L>>8;L=3145728-J*                            J-H*H>>11;J=sx64(
18  J*L>>10);H=sx64(                          H*L>>10);}L=F;F
19  -=9*E>>7;E+=9*L>>7                      ;L=3145728-F*F-E*E
20   >>11;F=sx64(F*L >>                    10);E=sx64(E*L>>10
21  /*https://www.a1k0n.net/2021/01/13/optimizing-donut.html*/
22    );}K=-1;while(1761>++K)putchar(K%80?b[K]:10);L=B;B-=5
23       *A>>7;A+=5*L>>7;L=3145728-B*B-A*A>>11;B=sx64(B
24         *L>>10);A=sx64(A*L>>10);L=D;D-=5*C>>8;C+=5
25            *L>>8;L=3145728-D*D-C*C>>11;D=sx64(D*L
26             >>10);C=sx64(C*L>>10);usleep(15000)
27                 ;printf("%c[23A",27);}}Z;