The error what I found (and repaired): doubled columns at the byte borders (see the MMD_error.jpg). Up to now I thought that this is only a Proteus display animation error, but no, the error was caused by my program
.
A friend of mine built the circuit (the simplest Scroll16c-01.c version used), then he made a video of the well-functioning system, and sent it to me (thank you). However, can be seen in the above error too, especially when the scrolling stops.
This problem exists in all versions (-01, -02, -03), except for the -04. For a long time I was looking for a reason, but finally found it
: The error was in the "shift_in_a_column" routine, in the simulated "multi-byte shift left with carry" algorithm. See the bytecnt loop: rotate a whole line (7 bytes) left with carry. The repair is simple, just one instruction to be modified.
I did not notice before, because I'm working always only with the fastest (-04) version, and that is correct because it does not simulate the "Rotate Left with Carry" function, but it is using the real asm instruction, the inline "RLF".
Use the corrected program(s) then the shadow, the duplicated column will disappear (see the MMD_repaired.jpg).
All fixes (for MikroC -01, -02, -03 and Proton Basic -01, -03) attached now.
Thanks
zuisti