Introduction
Recently I mentioned on this forum that SIP, like SCORE, is a one-man show and therefore lives as long as its owner. Someone hinted about the likelihood of me being hit by a trolley and indeed from where I am writing (Nantes, France), this is a remote possibility.
But, dear customers, do not despair. I have taken measures to assure product continuity for the days when I am no longer capable or willing of providing support and coming up with upgrades.
The solution, or at least part of it, is software escrow.
"Software escrow means deposit of the source code of the software into an account held by a third party escrow agent. Escrow is typically requested by a party licensing software (the "licensee"), to ensure maintenance of the software. The software source code is released to the licensee if the licensor files for bankruptcy or otherwise fails to maintain and update the software as promised in the software license agreement".
What this means in plain English is that there is a third party where, at the cost of copy and handling you can get the complete source code of SIP, or the third party may publish the source code on Internet.
As of when this will be possible is between the third party and me or our heirs. The agent will announce on the forum when the material becomes available. It has been deposited there and will be updated once every year. It is not much but it is the best I can do.
Perhaps Leland Smith could make an identical arrangement.
Practically, this means that only those with programming skills will be able to make fixes and extensions to the software. Within the forum there are a couple of people with the right background.
The required background is basically (1) programming experience; (2) knowledge of DOS; (3) knowledge of SCORE and computer engraving.
When someone will effectively make new versions of SIP modules, he may want to ask money for it which by then is really no longer my problem.
As the software has been written in a variety of languages, specific requirements have been or must be taken to create the necessary
development environment. See the technicalities at the end of this text.
Risks and termination
The escrow mechanism of course depends on a few facts that we take for granted today:
- there will be MS-DOS and there will be Windows
- DOS programs can run on a Windows system
- there will be compatible development tools for those currently being used
- SCORE will still be around and running on compatible platforms
When a time comes where Score, DOS or Windows are just museum pieces and historical references, the escrow scheme has come to an end.
Partnership
The escrow agent is New Notations London, 93 Wellmeadow Road, London SE6 1HL, United Kingdom. This company is run by Stephen Gibson who has been the distributor of SIP in the United Kingdom for years and I am happy that a person as qualified in music engraving and computer programming as Stephen has agreed to take up this responsibility. Our arrangement is that I will file the complete SIP escrow kit at least once per year, in the first half of January, and if lots of development has taken place, intermittently.
If anyone is interested in obtaining the complete escrow kit for SIP as described above before the escrow becomes active, this can be arranged but at a price to be negotiated.
Technicalities Visual Basic
Practically everything made in the last ten years is in VB6. The programmer requires a license of this compiler to be able to maintain programs written in this language. VB compiler runs under Windows. Note that some programs are immense. The main program with the freeware has about 65,000 lines of code while SIPSIB is the biggest program in the SIP collection and currently has in excess of 34,000 lines of code. Another biggie is SIPXML with about 23,700 lines of code. The total number of all SIP utilities combined is about 125,000 (the detailed list is published on the website). When this may not seem impressive to some, let it be known that the average production in the industry for a programmer is 15,000 lines per year.
Assembler
Some modules of the freeware programs are in Turbo Assembler. SipSplit, written in TAAL, calls subroutines written in Assembler. The programmer requires a license of this assembler to be able to maintain programs written in this language. Modules written in this language are very unlikely subject to maintenance. The object code is part of the escrow as well. While running under DOS, procedures can be started from Windows and execution is in transparent background. The linker is included in the license of the assembler.
Taal
This is a private higher-level Basic look-alike language which generates input to the QuickBasic compiler. The Taal compiler and its user guide are part of the escrow. Programs such as SipXref and SipSplit are written in Taal. While running under DOS, procedures can be started from Windows and execution is in transparent background.
QuickBasic
Version of QBC is 4.00b from 1988. The complete development environment (QBC.EXE and BCOM41.LIB) may form part of the escrow and I am investigating if this is possible without infringement of copyright. Included are libraries with callable subroutines of which source code is provided as well.
Cobol
Two modules have been written in Cobol: SIPXREF9 and SIPFIND9. The compiler is CA-Realia II Workbench Version 3.0.55 Gen. level 9707 of 1997. It is not likely that any potential SIP programmer will have this compiler. Therefore, the following is to be noted:
- SIPXREF9 is a rewrite of a number of modules which were written in Assembler and Taal before 1997. The original sort programs are in Assembler, the reporting programs in Taal. The original sources of these are part of the escrow. The operational difference between SIPXREF9 and the older modules is just speed. The Cobol sort is faster than the original one in Assembler. SIPXREF9 has 2153 lines of code (one box for those remembering punched cards).
- SIPFIND9 is an original program for which there is a substitute in Assembler called SIPFIND2 which is a bit slower.
At execution time, the SIP Control Center checks dynamically if the Cobol routine and the necessary DLL's are present. If not the Assembler version is executed.