?? RIGHT := 110 ??
MODULE ram$convert_status;

*copyc osd$default_pragmats
?? PUSH (LISTEXT := ON) ??
*copyc clt$variable_reference
*copyc ost$status

?? POP ??

*copyc rah$convert_status
*copyc osp$status_condition_code

  PROCEDURE [XDCL, #GATE] rap$convert_status (clv$status: clt$status;
    VAR osv$status: ost$status);

    VAR
      identifier: ost$status_identifier;

    osv$status.normal := clv$status.normal.value;
    IF NOT osv$status.normal THEN
      IF (1 <= clv$status.identifier.size) AND (clv$status.identifier.size <= STRLENGTH
            (ost$status_identifier)) THEN
        identifier := clv$status.identifier.value (1, clv$status.identifier.size);
      ELSE
        identifier := '??';
      IFEND;
      osv$status.condition := osp$status_condition_code (identifier, clv$status.condition.
            value MOD (UPPERVALUE (osv$status.condition) + 1));
      osv$status.text := clv$status.text;
    IFEND;

  PROCEND rap$convert_status;
MODEND ram$convert_status
