CRICKET DUCKWORTH/LEWIS CALCULATOR for ZX Spectrum v1.0 (2011/10/15): initial fully-working release (based on DLCalc 2.1 algorithms) v1.1 (2012/02/13): machine-code routine added for half-width font score display, resulting in the main over-by-over table being displayed in about half the time (it still takes just as long to compute the scores first though), as well as the ball-by-ball display being about 20% faster v1.1.1 (2012/02/13): ball-by-ball table display tweaked to use the already computed over-by-over scores for any end of over scores to avoid repeated work, resulting in a further 15% or so speed increase in the display of that table v1.2 (2012/03/03): updated to use current algorithm (from DLCalc 3.0), bugfix to innings 1 calculation which could have caused slight errors v1.2.1 (2012/05/14): machine-code routine added to clear screen area of ObO and BbB tables to slightly reduce the time needed to display them v1.2.2 (2012/05/15): machine-code routine added to scan cursor-keys to allow diagonal movement in ObO table v1.2.3 (2012/05/16): ObO table scrolling routines from v1.0 improved so that they now clear the line at the top or bottom (using the 1.2.1 code). No noticeable effect on performance but it tidies things up a bit. v1.3 (2012/05/16): machine-code routine added to display a full row of scores in the ObO table, speeding up its display enormously. The full ObO table is now displayed in just 1.6 seconds instead of 16 secs, and scrolling all the way up or down through the maximum of 30 rows (a full 50 over table) is down from 27 secs to 9 secs. v1.3.1 (2012/05/18): bugfix to error in ObO table formatting when wickets have been lost, which was introduced in the v1.3 changes. Also some other minor tweaks and a fix to prevent rounding errors which might occasionally occur when converting between overs and balls. v1.3.2 (2012/05/21): simple change to the BASIC code (moving the DEF FN statements to the start) has almost eliminated a 0.29 second delay whenever those functions are called. Calculations are now almost twice as fast (the maximum time to calculate the ObO table is down from around 5m30s to 3mins), BbB display time is down from 23 to 15 secs, and the innings details entry screen now displays far more quickly. v1.4.0 (2012/06/16): Over-by-over table keyboard code rewritten to remove the now unnecessary "re-centre table on cursor" and further improve scrolling speed. Scrolling through 30 rows is now down to under 8 secs. Also updated the overlooked REM statement at the end of the code to reflect the actual version. v1.4.1 (2012/06/17): The target score is now displayed on the table view below the Ball-by-Ball table. Further tweaks to the ObO table code have reduced the scrolling time to about 6 secs for 30 rows. v1.4.2 (2012/06/18): Input validation made much more thorough. Short machine-code routine added to draw lines in lower-part of ObO table screen as the BASIC routine was a bit slow. Message when program is first run to let the user know it takes a little while to start. A fix to workaround the Spectrum ROM bug when handling numeric strings like "0.x" on the innings entry screen. A few other minor code tweaks. v1.5.0 (2012/06/19): Innings details screen input changed so that now entering 'd' (instead of '0') as the number of overs played means that the innings is done, and entering '0' for the overs played means you wish to delete the previous entry for that innings (useful if play was expected to start after a delay with a certain number of overs and you entered that into the program, but it started raining again and play finally resumed with less overs to play). v1.5.1 (2012/06/20): bugfix to v1.5.0: the ObO table was not being recalculated when a 2nd innings delay was deleted v1.5.2 (2012/06/22): All score calculations speeded up by pre-calculating a time-consuming part of the main formula (specifically replacing the two "u^n" calculations in FN d() with "EXP (uln*n)" where uln is the pre-computed "LN u"). The maximum time to calculate the ObO table is down from 3mins to under 1m55, and the BbB table is now displayed in just over 10 secs. v1.5.3 (2012/06/23): optimised the BASIC code which displays the Ball-by-Ball table reducing its display time to under 9 secs v1.5.4 (2012/08/29): Split the program into a short loader which includes the m/code and UDGs, and the main program itself, packaged as a standard TZX tape file. A few minor cosmetic tweaks. v1.5.5 (2012/08/31): The innings details screen now displays much more informative details on what can be entered on it, as well as the Undo option where applicable v1.5.6 (2012/12/28): Improved input validation to ensure only whole number of overs revised innings lengths allowed, as well as fixing the display of the 2nd innings so it shows the old entry removed if you choose to change the initial length of it v1.5.7 (2012/12/28): A new look at the calculation formula has resulted in a major rationalisation of the second innings score calculations by pre-computing most of the formula when the first innings is done, and storing the twenty possible results of it in arrays. I couldn't see the wood for the trees before! It all seems so obvious now. A full 50-over table can now be computed in just over a minute, and the Ball-by-Ball table takes in about five and a half seconds.