SpeedScript
Sep. 17th, 2019 09:03 amI feel the need to put a finer point on this SpeedScript thing.
SpeedScript had no idea where the cursor was on the screen, only in memory. So in order to blink the cursor, it had to blink the actual letter in the document, and then redraw the screen.
This was already a problem on the c64; where I can now type faster than the screen redraws. The Vic-20 probably didn't have this problem because it had fewer letters to draw. The Commander X-16 prototype runs at 8 MHz so it's lightning fast in 40-column mode, but 80-column mode also has 60 rows. So it has to redraw 4120 characters every time anything on the screen changes.
It'd probably be worth my while to optimize it, like maybe store a line length table or something. But every optimization means I'll have to track something that SpeedScript for the C64 never had to track. It never scrolled the screen, for example; it just moved the top-of-screen pointer before redrawing.
I already tried to track the cursor position on the screen, but that's easier said than done. I can catch the cursor position when the screen is redrawn, but that means if they move the cursor, SpeedScript will have no idea where the cursor is until it redraws again. so I need to find some cheaper way of locating the cursor.
I'll probably need a lookup table or something.
SpeedScript had no idea where the cursor was on the screen, only in memory. So in order to blink the cursor, it had to blink the actual letter in the document, and then redraw the screen.
This was already a problem on the c64; where I can now type faster than the screen redraws. The Vic-20 probably didn't have this problem because it had fewer letters to draw. The Commander X-16 prototype runs at 8 MHz so it's lightning fast in 40-column mode, but 80-column mode also has 60 rows. So it has to redraw 4120 characters every time anything on the screen changes.
It'd probably be worth my while to optimize it, like maybe store a line length table or something. But every optimization means I'll have to track something that SpeedScript for the C64 never had to track. It never scrolled the screen, for example; it just moved the top-of-screen pointer before redrawing.
I already tried to track the cursor position on the screen, but that's easier said than done. I can catch the cursor position when the screen is redrawn, but that means if they move the cursor, SpeedScript will have no idea where the cursor is until it redraws again. so I need to find some cheaper way of locating the cursor.
I'll probably need a lookup table or something.