http://z80-heaven.wikidot.com/math#toc35