Hi,
you're trying to do the following - hacking some sort of basic gui code and putting it into an interrupt service routine.
Now if your hooking the PIT - set at 100 HZ - isr and do the whole gui with it you will have a gui, but it won't work as expected for several reasons.
First of all Interrupts can't be interrupted themselves therefore each interrupt stands in queue unless it's predecessor has finished. Therefore depending on how fast your code is - in fact it will never be fast enough to realize a whole gui in an isr which does not delay the systems response time to user input (another interrupt which must wait until whole screen got repainted and so on)
ISRs should be lightning fast and contain no code that is not neccessary to respond to the hardware which caused it.
Next thing is normally the PIT is used to archieve a timer which causes the task switching in a multitasking environment.
This is time critical meaning apart from the hardware the handler code is responsive for how fast the system will run with multitasking. If you ever want to implement multitasking it won't make sense to have very much gui code in the isr which has to be executed every time right before any task switch occurs.
With your design so far you only way to control how much cpu time the gui gets is changing the frequency of the PIT.
Well you could archieve the first 'extremely interrupted monotasking system with interrupt gui'

but I guess that's not what you wanted.
Basically if you wanted to code that gui to be useable meaning
reacting to user input etc. you will have to implement multitasking first so that you can have a process providing the gui, while interrups can be used (as intended) for servicing user input without delay.
hope it helps