main module testrms use RMSLIB use TEXTIO declare N_Records = 4 // number of records to write buffer: static packed array[1..8] of char initially "ASDFGHJK" dot_char is char initially $. answer: static packed array[1..80] of dot_char length: integer status: integer enddeclare function ok (status: integer) returns it_is: boolean it_is := (logical(status) and 2#1)=2#1 if not it_is do out_string (TTY, "RMS_ERROR = ") out_formatted_integer (TTY, status, 10, 16) out_record (TTY) endif endfunction {ok} exception crea, conn, put, dis, close, rew, get // create a file if not ok(TMP_CREA()) do ; raise crea ;endif if not ok(TMP_CONN()) do ; raise conn ;endif // write records for R := 1 to N_Records do if not ok(TMP_PUT(buffer, 8)) do; raise put; endif endfor // rewind if not ok(TMP_REW()) do; raise rew; endif // read records until EOF repeat declare (Status :integer) Status := TMP_GET(Answer, 80, length) if ok(Status) do out_string (TTY, "Length = ") out_integer (TTY, Length) out_string (TTY, "Status = ") out_formatted_integer (TTY, Status,10, 16) out_record (TTY) out_string (TTY, Answer, length) out_record (TTY) otherwise if status<>TMP_EOF do raise get endif endif until status = TMP_EOF if not ok(tmp_dis()) do; raise dis; endif if not ok(tmp_close()) do; raise close; endif out_line (TTY, "Test completed successfully") endmodule