; My fast version. Self modifying code. Muahahaha _initcode ; This puts the loops on a 16 byte boundary Init: MOVE.L Entry+2,A0 MOVEQ #8,D1 MOVE.L A0,D0 SUB.L D1,D0 AND.W #-16,D0 ADD.L D1,D0 MOVE.L D0,A1 MOVE.L A1,Entry+2 MOVEQ #32,D0 1$ MOVE.L (A0)+,(A1)+ DBF D0,1$ MOVE.L 4.W,A6 ; AbsExecBase JSR -$27C(A6) ; SYS_ClearCacheU RTS NOP NOP _circle Entry: JMP FastAndLong DS.B 16 ; For cache stuff ; Entry: A0-Plane D0-X D1-Y D2-Radius D3-Colour FastAndLong: LSL.L #8,D1 MOVE.B D0,D1 ADDA.L D1,A0 MOVEQ #0,D0 MOVEQ #0,D1 MOVEQ #0,D4 MOVE.L D2,D5 MOVEQ #0,D6 MOVE.L D2,D7 MOVEA.L A0,A1 MOVEA.L A0,A2 MOVEA.L A0,A3 MOVEA.L A0,A4 SUBA.L D2,A1 ADDA.L D2,A2 MOVEA.L A1,A5 MOVEA.L A2,A6 LEA $100.W,A0 LSL.L #8,D2 1$ ADDQ.L #1,D4 MOVE.B D3,(A1) ADDA.L A0,A1 MOVE.B D3,(A2) ADDA.L A0,A2 MOVE.B D3,(A5) SUBA.L A0,A5 MOVE.B D3,(A6) SUBA.L A0,A6 SUB.L D4,D0 BHS.B 1$ SUBQ.L #1,D5 ADDQ.L #1,A1 SUBQ.L #1,A2 ADDQ.L #1,A5 SUBQ.L #1,A6 ADD.L D5,D0 BLO.B 1$ SUBA.L D2,A3 ADDA.L D2,A4 MOVEA.L A3,A5 MOVEA.L A4,A6 ADDQ.L #1,A5 ADDQ.L #1,A6 2$ ADDQ.L #1,D6 MOVE.B D3,(A3)+ MOVE.B D3,(A4)+ MOVE.B D3,-(A5) MOVE.B D3,-(A6) SUB.L D6,D1 BHS.B 2$ SUBQ.L #1,D7 ADDA.L A0,A3 SUBA.L A0,A4 ADDA.L A0,A5 SUBA.L A0,A6 ADD.L D7,D1 BLO.B 2$ RTS NOP NOP NOP NOP NOP NOP NOP .