I have rewritten the cursor handling. I went for the cached line pointer approach because messing with the cursor during keyboard input would lead to all sorts of problems for the future tty80/screen80 loadable driver for which I want to reuse the existing tty_conin/const and also reuse the 1kB of screen memory, so it should not touch any memory screen related.
But it's quite a bit faster now, and I also rewrote the scrollup/down, clear_screen and cleartoeol logic, which now no longer needs multiple calls to calculate_line_address. This might be interesting for other character based bios's. If you know the start address of the screen memory, this is a lot faster, at the expense of slightly larger code.
Hi,
I have rewritten the cursor handling. I went for the cached line pointer approach because messing with the cursor during keyboard input would lead to all sorts of problems for the future tty80/screen80 loadable driver for which I want to reuse the existing tty_conin/const and also reuse the 1kB of screen memory, so it should not touch any memory screen related.
But it's quite a bit faster now, and I also rewrote the scrollup/down, clear_screen and cleartoeol logic, which now no longer needs multiple calls to calculate_line_address. This might be interesting for other character based bios's. If you know the start address of the screen memory, this is a lot faster, at the expense of slightly larger code.
Tested all three Atari variants.
Regards, Ivo