Just for the record, the bit zero marking the end of the parameter list conflicts with the C (and ALGOL) call-by-value mechanism, where (integer) values are part of the register 1 parameter list (which is not an "address" list, in this case), and the passed values may be negative. We had lots of trouble with that.
This is a good example. where a good idea at first sight (marking the end of the address list with bit zero set) shows up bad in the long term. There still has a way to be found to specify the length of a variable long parameter list in a portable way across all platforms - even in C you have only the stdarg.h header. The number of arguments somehow has to be passed in the first n "fix" parameters, but it is left to the individual function to specify how this is done. Kind regards Bernd Am Freitag, 13. August 2010 15:25 schrieben Sie: > Yes, the unfortunate overloading of bit zero. Does bit zero on in a > parameter list mean a 31-bit address or the last parameter in variable > length parameter list. A real problem when you don't know how old the > legacy code is that's calling your routines. > > Gary weinhold > Data Kinetics. Ltd. >
