tschak909 / platotermzx

PLATOTerm for ZX Spectrum and Amstrad CPC (and other Z80 systems)
22 stars 10 forks source link

Performance tuning #7

Closed thweasel closed 4 years ago

thweasel commented 4 years ago

Made changes to the RS232 and Spectranet versions.

Buffering is applied to the RS232 versions (IF1 PLUS), also tuned up the keyboard detection. Using in_Pause to slow the code down between RX checks. Hitting the keys brings the next RX check sooner as in_Pause counters 0 on keypress.

Spectranet is tuned up using in_Pause too. I have commented out the for loop option, which wraps a smaller in_Pause. Using one longer in_Pause works ok. The for loop over a short pause lets you catch a few keys before next RX. Doesn't seem to matter that much, assuming a good network connection the latency isn't bad.

The RS232 version now has a small Dialer menu on it. I push the AT codes to set CTS/RTS then dial the hostname given (assuming HOST:PORT) string is correct with no checking! Just hitting Enter dial irata.online which is 99% of the uses cases.

Sorry, there has been a shuffle on the indenting, needed the code collapse to work in the editor to see the loops. It didn't like the style used :(

Added some Keyboard checks to some of the COMMONs, I have wrapped them in IFDEF SPECTRUM to not break anything. I know this is not the way forward, but I didn't want to take out the other versions with the update!

Made some changes to the Build scripts, we now have -O2 option set for improving performance. It seems to work, but the boost is negligible considering some of the other changes! Moved spectranet to SNET build folder, and added P3 which build the PLUS version but outputs a DSK file. Super handy for putting on a USB and testing on a +3 with a GOTEK :) There are a few minor changes to some of the commented outlines which are for ease of access like the TURBO DEV build options etc.

Hope this fixes more than it breaks!

Owen