.title mda
; Use this little routine to figure out the ucb$l_media_id fields for
; serveable devices. Couple examples given at end.
;
.MACRO MEDIA dd, devnam, dtname
.SAVE
.PSECT $$$220_DEVTYPE_TABLE_01 RD,WRT,EXE,BYTE
$$BEGIN$$=-1
$$MEDIA$$=0
$$S$$=27
.IRPC $$L$$,
$$TEMP$$ = ^a/$$L$$/ - ^x40
.IF GT $$TEMP$$
$$MEDIA$$ = $$MEDIA$$ + <$$TEMP$$ @ $$S$$>
.ENDC
$$S$$ = $$S$$ - 5
.ENDR
.IRPC $$L$$,
.IF GE <$$S$$ - 7>
$$TEMP$$ = ^a/$$L$$/ - ^x40
.IF GT $$TEMP$$
$$MEDIA$$ = $$MEDIA$$ + <$$TEMP$$ @ $$S$$>
.IF_FALSE
.IIF LT $$BEGIN$$, $$BEGIN$$ = <17-$$S$$>/5
.ENDC
$$S$$ = $$S$$ - 5
.ENDC
.ENDR
.IIF LT $$BEGIN$$, $$BEGIN$$ = 3
$$N$$ = %extract( $$BEGIN$$, 3, devnam )
$$MEDIA$$ = $$MEDIA$$ + $$N$$
.NOSHOW CND
.SHOW ME
.LONG $$MEDIA$$ ; Store media-id
.IF BLANK dtname
.BYTE DT$_'devnam' ; Store VMS device type
.IF_FALSE ; -- OR --
.BYTE dtname ; Store explicit VMS type
.ENDC
.NOSHOW ME ; Filler to make listing look
.SHOW CND ; good
.SHOW ME
.NOSHOW ME
.RESTORE
.ENDM
.list meb
media FD,FDA0,RP06
media MP,MPA0,TS11
.end