We are eager to ensure that any programs published for the Amstrad 464 machine will also be entirely compatible with the 664. There is no problem with prerecorded Basic programs. However, typed-in programs must not use variable names that have now become reserved words (FILL for example).
Assembler programs are, however, a different matter. Provided that they rely on addresses and routines that are documented in our Concise Firmware Specification, there should be no problem. However, programs that make use of undocumented addresses and routines that have been found by inspection cannot be guaranteed to work.
A case in point is the Event Block Effects article by J. Keneally (issue 108). The event routines he uses will work on the 664 exactly as they did on the 464 - they are documented in the Firmware Spec.
Unfortunately, his program makes use of a pointer that holds the start address of the Basic program area - this was not documented and has now changed. Consequently, the program will not work on a 664.
The program also makes assumptions about the format of Basic program storage - this is undocumented and is also liable to change without notice.
Mr. Keneally is not the first and will probably not be the last to make this mistake. However, by publishing this letter, we hope more people will recognise this potential problem.