derstad@CIM-VAX.HONEYWELL.COM ("DAVE ERSTAD") (05/05/89)
The status field is a record structure. There are four main fields; a fail bit, a subsystem code, a module code, and an error code. The E0007 is the module and error code part (subsystem is 0). What you are seeing is that the fail bit is being set. This will cause the comparison based on the .all field (a conglomeration of all 4) to not work correctly. One solution is to set the fail bit off: status.fail := false { or is it true? I always forget... } and then do the comparison. Probably not too different than the kludge you had in mind, but at least now you know why and also that only that one bit is potentially wrong. The elegant solution is to check the individual fields, using something like name_not_found.all := name_$not_found { In some initialization routine }; Then, in your code, do something like if (name_not_found.code = status.code) and = name_nod_found.mod) and (name_not_found.module (name_not_found.subsys = status.subsys) then .... (That should be .modc, not .mod) Dave Erstad DERSTAD@cim-vax.honeywell.com Honeywell SSEC