Hi Trond.
I'm not sure this is right...
For insert and delete of varibles of known size (all numeric types) this can be very efficient.
Using the customary rules for moving a block where the destination and source overlap it is quicker to move the variables in memory than use a BASIC loop that needs to compute address' from the array index each time.
As an alternative, copying the entire array to a buffer and putting it back could take advantage of high speed block moves. I admit this is not a nice method, but when speed is of the essence it is a technique worth considering. ( I have done this in a hardware system and used an FPGA to move RAM blocks around... the alternative was to design an address mangle that left the data static and remapped the addresses with an ALU... even nastier

)
Do the Intel family processors have MOVE *A1, *A2, N ? If so then block moves should run like grease lightning. (No PC ASM here, yet!)