# Print the Mandelbrot set on the # terminal line output. function w $mandel(d %x, d %y) { @mandel %cr =d sub %y, d_0.5 %ci =d copy %x @loop %i =w phi @mandel 0, @loop1 %i1 %zr =d phi @mandel d_0, @loop1 %zr1 %zi =d phi @mandel d_0, @loop1 %zi1 %i1 =w add 1, %i %tmp =d mul %zr, %zi %zr2 =d mul %zr, %zr %zi2 =d mul %zi, %zi %zrx =d sub %zr2, %zi2 %zr1 =d add %zrx, %cr %zix =d add %tmp, %tmp %zi1 =d add %zix, %ci %sum =d add %zi2, %zr2 %cmp1 =w cgtd %sum, d_16 jnz %cmp1, @reti, @loop1 @loop1 %cmp2 =w csgtw %i1, 1000 jnz %cmp2, @ret0, @loop @reti ret %i1 @ret0 ret 0 } function w $main() { @main @loopy %y =d phi @main d_-1, @loopy1 %y1 @loopx %x =d phi @loopy d_-1, @loopx1 %x1 %i =w call $mandel(d %x, d %y) jnz %i, @out, @in @in %r0 =w call $putchar(w 42) # '*' jmp @loopx1 @out %r1 =w call $putchar(w 32) # ' ' jmp @loopx1 @loopx1 %x1 =d add %x, d_0.032 %cmp1 =w cgtd %x1, d_1 jnz %cmp1, @loopy1, @loopx @loopy1 %r2 =w call $putchar(w 10) # '\n' %y1 =d add %y, d_0.032 %cmp2 =w cgtd %y1, d_1 jnz %cmp2, @ret, @loopy @ret ret 0 } # >>> output # # # # # # # # # * # # **** # # **** # # *** # # ***** # # ********* # # ************ # # ***************** # # **************** # # *************** # # **************** # # **************** # # ***************** # # **************** # # **************** # # ************** # # ************* # # ************ # # ********* # # ***** # # *********** # # ***************** # # ********************** # # * *********************** ** # # *************************** # # ***************************** # # * ******************************* ** # # ** *********************************** # # *********************************** * # # *********************************** # # ************************************* # # ************************************* # # *************************************** # # *************************************** # # *************************************** # # **************************************** # # * **************************************** # # ********************************************** **** # # **************************************************** # # * ***************************************************** # # * ***************************************************** # # ***** **************************************** **** # # * **************************************** * # # **************************************** # # *************************************** # # **************************************** # # *************************************** # # **************************************** # # ************************************ # # *********************************** # # ********************************* # # ************************************ # # *** ************* ************** *** # # *********** ************ ** # # ******** ******** # # ** * * # # # # # # # # <<<