tcat wrote:All procs seem reasonable fast, except BLOCK that I also use for scan line fill, circle and ellipse.
It takes these lines below, is simple but quite slow (as it goes by pixels), actually slower than QDOS. I wish to make it a lot faster?
When I last researched the topic of 'block' fill (e.g. CLS and many other uses), IIRC some additional pre-processing is carried out - certainly in Minerva - so that multi-byte moves can be used to actually paint the required colour-mask - using such tricks as devious combinations of MOVEM.L and/or MOVEP.
Ultimately, we are at the mercy of the DRAM bus-bandwidth - including contention with the 8301 - and reducing the instruction-count needed to paint a given range of video-words, helps to optimise performance...
At one time, I toyed with the idea of generating self-modifying code - I know, the purists will complain
- to maximise the use of MOVEM.L's, depending upon the block dimensions and offsets for a given area. It's tedious and I gave up after a while, but it looked promising to eek-out even higher block-painting performance at the expense of complex coding and non-re-entrancy...