.title glocnm - generate local name from name block ;+ ; subroutine glocnm(int, buf) ;- .psect $r.roi,con,ro,rel,lcl,i .enabl lsb ap=%5 int=2 buf=4 glocnm:: clrb @buf(ap) ; assume error mov @int(ap),r0 ; rat4 unit number call r$gfbk ; get RFDB address bcs 100$ ; c set => invalid unit call r$clsf ; close the file mov r.fdb(r1),r3 ; FDB address mov r3,r4 ; generate name block address add #f.fnb,r4 ; ... mov buf(ap),r0 ; output buffer address movb n.dvnm(r4),(r0)+ ; copy device name movb n.dvnm+1(r4),(r0)+ ; ... movb n.unit(r4),r1 ; unit number call r$btoo ; format in octal movb #':,(r0)+ ; separator mov r0,-(sp) ; save buffer address mov r3,r1 ; FDB address in r1 call r$guic ; ask ACP for UIC mov r0,r3 ; place UIC in reg mov (sp)+,r0 ; restore buffer address bcs 50$ ; c set => error in ACP qio mov r0,r2 ; buffer address mov r4,-(sp) ; save FNB address clr r4 ; no leading zeroes in UIC call .ppasc ; format uic mov r2,r0 ; put buffer address back mov (sp)+,r1 ; need name block in r1 call r$cvtf ; fetch file name 50$: clrb (r0) ; terminate with EOS 100$: return .end