Originally Posted by Photon
But I think you just want to make the ultimate most fantastic superfast *drumroll* ILBM converter... which I find utterly unnecessary but there you go
No, I quite agree. Under all previous circumstances I've converted graphics data to raw. Converting ILBMs on the fly is pointless - except when the specific task at hand is to convert them on the fly that is.
So my thinking was along these lines: if that's what I've gotta do, might as well do it as quick as possible cos, after all, doing things smaller and faster is where the fun comes into assembly coding.
Anyway, updated quicker versions are -
.put_colours: move.b (a0)+,d0
.next_row: moveq.l #screen_bpls-1,d6
.crntrow_allbpls: moveq.l #screen_wd,d4
.rle_decode: moveq.l #0,d7
.copy: move.b (a0)+,(a3)+
.replicate: neg.b d7
.do_replicate: move.b d3,(a3)+
.next_bpl: subq.b #1,d4
Thanks for your advice guys - especially Thoram, much neater and tidier colour extraction loop and shaved about a raster line off execution time too