#!/bin/zsh

let MaxX=79
let MaxY=36

let Im=-0x010000
repeat $MaxY do
  let Re=-0x020000
  line=""
  repeat $MaxX do
    let Zr=Re
    let Zi=Im
    let n=0
    repeat 20 do
      let "Zr>>=4"
      let "Zi>>=4"
      let "a=(Zr*Zr)>>8"
      let "b=(Zi*Zi)>>8"
      let tmp=a+b
      if [[ $tmp -gt 16#040000 ]]  break
      let "Zi=2*((Zr*Zi)>>8)+Im"
      let Zr=a-b+Re
      let n++
    done
    if [[ $n -eq 20 ]] then line=$line" "
    else
      let n%=10
      line=$line$n
    fi
    let Re+=0x030000/MaxX
  done
  echo $line
  let "Im+=0x020000/(MaxY-1)"
done

0000000011111122222222222222222222233333333444568486454333332222221111111111111
00000001111122222222222222222222233333333344446670 9765433333322222211111111111
0000001111222222222222222222222333333333344456291   875444333332222222111111111
00000111122222222222222222222333333333344455693     367544443333222222211111111
0000011122222222222222222222333333333445555678       17655444433322222221111111
00001112222222222222222222333333334456666667894      08766555554332222222111111
0001112222222222222222223333333444457783981 3       9  1 1766786433222222211111
00011222222222222222223333344444455671   4               501  67543322222221111
00112222222222222222333444444444555780                        28544322222222111
00122222222222222333444444444455568144                       996544332222222211
001222222222233334586555555555666797                           7654332222222211
012222222333333445580766783766677837                          8 474333222222221
0222333333334444456782        4002                             4954333222222222
023333333344444466610           46                              554333322222222
033333333444556898807                                           654333322222222
033333345555667825 6                                           7544333322222222
0445569777878912                                              76544333322222222
0445569777878912                                              76544333322222222
033333345555667825 6                                           7544333322222222
033333333444556898807                                           654333322222222
023333333344444466610           46                              554333322222222
0222333333334444456782        4002                             4954333222222222
012222333333344445677 5102 1 988896                             164333222222221
012222222333333445580766783766677837                          8 474333222222221
001222222222233334586555555555666797                           7654332222222211
00122222222222222333444444444455568144                       996544332222222211
00112222222222222222333444444444555780                        28544322222222111
00011222222222222222223333344444455671   4               501  67543322222221111
0001112222222222222222223333333444457783981 3       9  1 1766786433222222211111
00001112222222222222222222333333334456666667894      08766555554332222222111111
0000011122222222222222222222333333333445555678       17655444433322222221111111
00000111122222222222222222222333333333344455693     367544443333222222211111111
0000001111222222222222222222222333333333344456291   875444333332222222111111111
00000001111122222222222222222222233333333344446670 9765433333322222211111111111
0000000011111122222222222222222222233333333444568486454333332222221111111111111