| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- # 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
- }
- export
- 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
- # #
- # #
- # #
- # #
- # * #
- # **** #
- # **** #
- # *** #
- # ***** #
- # ********* #
- # ************ #
- # ***************** #
- # **************** #
- # *************** #
- # **************** #
- # **************** #
- # ***************** #
- # **************** #
- # **************** #
- # ************** #
- # ************* #
- # ************ #
- # ********* #
- # ***** #
- # *********** #
- # ***************** #
- # ********************** #
- # * *********************** ** #
- # *************************** #
- # ***************************** #
- # * ******************************* ** #
- # ** *********************************** #
- # *********************************** * #
- # *********************************** #
- # ************************************* #
- # ************************************* #
- # *************************************** #
- # *************************************** #
- # *************************************** #
- # **************************************** #
- # * **************************************** #
- # ********************************************** **** #
- # **************************************************** #
- # * ***************************************************** #
- # * ***************************************************** #
- # ***** **************************************** **** #
- # * **************************************** * #
- # **************************************** #
- # *************************************** #
- # **************************************** #
- # *************************************** #
- # **************************************** #
- # ************************************ #
- # *********************************** #
- # ********************************* #
- # ************************************ #
- # *** ************* ************** *** #
- # *********** ************ ** #
- # ******** ******** #
- # ** * * #
- # #
- # #
- # #
- # <<<
|