@domi The code:
- Sets ES:AX to *[DS:SI]. For a COM exe in DOSBox this resolves to AB48:04C4.
- Thanks to real mode, segment AB48 happens to include all of B800:0000 - B800:0FA0, AKA the text display buffer.
- The code loops through every 16-bit word in segment AB48
- AX is incremented by current word + the word 82 spaces behind (AKA one full horizontal screen row + 2)
- AX is divided by 4
- AX is decremented by 1
- AX is stored into ES:DI, DI is incremented by 2
Result: a moving, fading pattern