ACBLscore was originally written in PL/I in the early 80s and ported to Pascal shortly thereafter.
The current version of ACBLscore is approximately 180,000 lines of Pascal, 1,000 lines of assembler and has over 20,000 lines of various helper files, libraries etc. It represents approximately 30+ man years of development effort. Nearly all of this effort is by one programmer at ACBL – Jim Lopushinsky.
ACBLscore supports all of the various scoring functions of all of the games run by the ACBL in Bermuda, Canada, Mexico and USA. Not visible to many members is the fact that ACBLscore also handles all of the finances for regional and sectional tournaments and also all of the club finances for reporting to the ACBL at the end of each month. The finances for Nationals are organized a little differently and not through ACBLscore.
ACBLscore is continuously updated to reflect changes to either the scoring methods or new games or changes to the masterpoint structure.
The data from ACBLscore is processed by a large number of ACBL HQ software that handles all of the masterpoints, results and finances.
The ACBLscore “Gamefile” that stores all the data from an event/section was created by Jim back in the early 80s. Back then every byte was very expensive both in terms of RAM and also in hard drive/floppy drive storage. The Gamefile is very compact but Jim designed it to be extensible. Care was taken to use an 8 bit int rather than a 16 bit int to save space. Nearly every record (“table” in modern DB parlance) has a 4 byte trailer that can then be used to point to another block of memory. Some “records” (using Pascal terminology) have been extended several times. For some of the data there are up to 10 levels of indirection before you get to the actual data field. The format of the file is Pascal-esque. For example, every string field is prepended with the number of bytes in the string before the actual text. This file format was created before SQL was widely available and is very efficient and compact.
In addition, ACBLscore uses a number of external files (*.DAT) that contain files that cross a particular game file. For example, the attendance at a tournament, club definition(s), tournament events, tournament financial records are stored in separate *.DAT files.
The data is transferred to ACBL in an LHA-compressed file format (the file extension is commonly .LZH). LHA is not very common in ACBLland but was the best (free) compression software when ACBLscore was originally written. There has been no need to change this format.
The data transferred each month to clubs is an LHA file containing the financial data, masterpoint data and result data. This file was similarly designed to transfer the minimum amount of information (remember 5 1/4″ floppies?).
The software was originally written for DOS. Windowing within DOS was then added using assembler routines. The code was “ported” to Windows but in reality this is only a different wrapper around the DOS version.
ACBLscore ships in both the DOS version and the Windows version. The DOS version contains several features that are not available in the Windows version (e.g. Macros) and is a little quicker (less overhead). The DOS version is the preferred version of most tournament directors. However, DOS does not support USB devices to the wireless scoring devices (BridgeMate, BridgePad). These are only supported under Windows. It is common for a TD to set up an event/section using the DOS version, close the program, then score the event using the Windows version and then go back to the DOS version to print scores and reports.
There are various constraints that are imposed by the operating system and file structre. For example the wireless scoring devices do not run under DOS. The software only runs on Windows operating systems. There are various constraints with the printers that are commonly used at tournaments. The Gamefile is limited to 50 events, 100 sections.
Despite these limitations, ACBLscore handles over 3,000 clubs, 1,000 tournaments a year with very few bugs or problems. The ACBL relies on it for nearly all masterpoint reporting from clubs and financial reporting from clubs and tournaments. Replacing this business critical software at 3,000+ locations is not a task we take lightly.