davidgiven / cpm65

CP/M for the 6502
BSD 2-Clause "Simplified" License
270 stars 24 forks source link

Rewrite cursor handling. #64

Closed ivop closed 1 year ago

ivop commented 1 year ago

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

davidgiven commented 1 year ago

Merged --- thanks!