.title rename ; ; ; routine renames files using RMS ; ; call sequence: status = rename(name1, name2) ; ; inputs: name1, name2 are old and new names for file ; ; outputs: OK(0) if successful ; ERR(-3) if error ; ; esssize=104 ; size of expanded string name1=4 ; ap offset of name1 name2=8 ok=0 err=-3 .psect st_rename_data rel,con,gbl,noexe,wrt,rd,pic,noshr,usr,novec,long nam1: $nam esa=esa1,ess=esssize nam2: $nam esa=esa2,ess=esssize fab1: $fab nam=nam1 fab2: $fab nam=nam2 esa1: .blkb esssize esa2: .blkb esssize .psect st_pure_code rel,con,lcl,exe,nowrt,rd,pic,shr,usr,novec,long .entry rename ^m moval fab1,r2 ; oldfab in r2 moval fab2,r3 ; newfab in r3 movl name1(ap),fab$l_fna(r2) ; place string address in fab pushl name1(ap) calls #1,length ; calculate length of filespec movb r0,fab$b_fns(r2) ; length of filespec in fab movl name2(ap),fab$l_fna(r3) ; same for new filespec pushl name2(ap) calls #1,length movb r0,fab$b_fns(r3) $rename oldfab=r2, newfab=r3 blbc r0,error ; low bit clear => ERROR movl #ok,r0 ret error: movl #err,r0 ret .end