jimbobaby escribió: ↑14 Jul 2024 09:02
Honestly, i didn't want to interrupt your work on the engine. You are doing hard work the right way and, after all, it's better to optimize when you have all the pieces in place than in between. So, do not worry by now
And yes, screen change was, the last time i measured it, about 4-5 screen changes per second, that would be about 200ms give or take. I don't think it would be a problem given the amounts of time it gets called.
And again, i think optimizing should be done at the end, only where it's needed.
One step at a time
Edit: i have put the last changes on the 9E version.
Thanks a lot for that
Honestly, you have not interrupted our work on the engine. I, myself, do that most of the time
Right now I should be working on the C compiler to convert the AGD objects data into the structure we have agreed here, that's to say an image table with 128 bytes per entry (4 planes each 32 bytes) and a data table with only 7 bytes (image number, current screen, current posY, current posX, initial screen number, initial posY, initial posX). But I have not yet started that
This change will imply the engine DrawObj function to be rewritten to take into account the new data structure.
And important, I need to test your new IRQ interrupt Service Routine for the OPN. I am sure most of you have already noticed that when executing
the last version or any previous one, that pressing a key like 'O', 'P' is not always detected correctly by the engine. I found that the keys must be pressed for a longer period instead of just a touch, but not that much to avoid repetitions!
Maybe the long and convoluted subroutine to scan the keyboard that we have inherited from ShounenMike takes way too many cycles, I don't know.
I will try to compile on LWASM setting directives to count the cycles inside that SBR, but this depends on the friendshipness of LWASM with respect to the
syntax used and accepted by ASM6809. If problems do arise, I would extract the SBR and compile it alone.
cheers!