[Coco] Improving CoHR performance

Luis Antoniosi (CoCoDemus) retrocanada76 at gmail.com
Sun Feb 1 01:15:48 EST 2015


Hi,

I made 2 small change that improved the CoHR performance a lot.

In the:

DoNormalChar
         pshs  y,a
*         lbsr  DoEraseCursor
         clr   V.51CursorOn,u * Flag cursor off

I replaced a DoEraseCursor to just erase the cursor flag. Question: if the
new character is being print OVER the current cursor position, why do we
care to proper remove the cursor before ?

And the second is after printing the character:

L01A5
         ldd   V.51XPos,u * Update old Cursor pos
         std   V.51OldCursorPosX,u
         dec   V.51CursorChanged,u
*         lbsr  DoDisplayCursor * Display cursor

I do not display the cursor. Why ? because the cursor is flashed by an
interrupt. It will eventually turn on and off in a regular time. So why
should I draw it now ? This improves the performance when printing a full
line, the cursor is updated by the interrupt and not every character.

I'm testing it and I'm very happy with the new lightning speed these two
changes offer.

What do you think guys ?




Luis Felipe Antoniosi


More information about the Coco mailing list