Excellent work! I am flattered. I love the animation so much. It works nicely on my C64, cannot wait for the full version :).
For the Apex units, you could alternatively use a few characters (to create the independent effect) and change their data in the charset memory only each nth frame. This way updating them on the screen memory wouldn't be necessary so no matter how many units you have to control, the processing power won't increase within the increase of the objects on the screen.
I like the level of detail you're focused on with the independently working Apexes and virus blobs. Design-wise, the Apex looks different than the animation from the Amiga project I shared on my page, but I like your take on this!
I am working on a few assembly projects so if you would like to exchange some experience, drop me the line :).
I left your program to run for a while, take a look what happened :D