MEMO To: J.B.Tansley From: Graham Toal CC: Interested parties Subject: BBC Micro software standards. --------------------------------------- Sir, I would like to bring to your attention a growing problem in the field of software for the BBC Micro. For two years now, myself and others like me have been implementing systems for the BBC machine which have been committed to ROM and distributed at large. One of the main problems we face is that of compatibility between roms. Often you find that one ROM will not function correctly when another is in the same machine. When outside companies sell software that does not work with our own software, we blame them for 'not following the Acorn software standards'. When we ourselves write software which is not compatible with other programs, we say that it might be different, but it does adhere to the spec... (This is known as 'don't fix it, document it.) There exist several documents within Acorn describing the protocols to be used for various types of software, e.g. 'Languages', 'filing systems' & 'service roms'. I know for a fact that these documents have to date been deficient in the precision in which the specify interfaces and actions. I personally have found that the only document which comes close to reflecting reality is the 'Advanced User Guide' which is 'unofficial' (to use a favourite Acorn word) and incomplete. We are coming into an age where more and more software is available in ROM and therefor more and more combinations are likely in which interface problems can arise. We cannot blame our suppliers (OR our own programmers) for failure to comply with a 'standard' which is not cast in stone to an unambiguous degree. Specific examples of problem areas are: 1) status bits on return from filing system operations 2) slightly different semantics for the similar calls on different filing systems 3) Use of workspace for permanently resident (and active) utilities which are not classed as 'filing systems' 4) multiple intercepting & excision of vectors 5) code-area for RAM-based utilities (e.g. network utils) 6) workspace for IO-processor utilities when 2nd proc. fitted 7) naming conventions for utility rom commands The answers to most questions are written down somewhere, but seldom precisely and never in the one place. Usually, facts are passed on by asking the authors of whatever code you are interested in. This was quite acceptable in a small company, but is becoming more difficult as Acorn grows and staff become distributed. Also, new members of staff do not often realise that a problem exists and so do not ask for help. This memo is a request to see a definitive Acorn software document which company employees and external people alike can use to write software which, barring incompetance, will put an end to the headaches caused by incompatible notions of what an interface defines. Graham Toal.