%IF %DECLARED(%BASIC$QUADWORD_DECLARED) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL(2) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF EXTERNAL LONG FUNCTION device_check (STRING, STRING DIM (), LONG), & dismount_device (STRING), & get_device_name (STRING, basic$quadword), & get_device_online_status (STRING), & get_device_write_status (STRING), & get_volume_label (STRING, STRING), & mount_device & (STRING, STRING, LONG, STRING DIM (), LONG), & remount_device & (STRING, STRING, LONG, STRING DIM (), LONG), & reset_device & (STRING, STRING, STRING DIM (), LONG) EXTERNAL STRING FUNCTION get_process_id EXTERNAL LONG FUNCTION lib$getdvi & (LONG BY REF, & OPTIONAL WORD BY REF, & STRING BY DESC, & LONG BY REF, & STRING BY DESC, & WORD BY REF), & lib$getjpi & (LONG BY REF, & OPTIONAL LONG BY REF, & STRING BY DESC, & ANY BY REF, & STRING BY DESC, & WORD BY REF), & lib$sys_getmsg & (LONG BY REF, & WORD BY REF, & STRING BY DESC, & OPTIONAL LONG BY REF, & ANY BY REF), & sys$asctim & (WORD BY REF, & STRING BY DESC, & basic$quadword BY REF, & BYTE BY VALUE), & sys$device_scan & (STRING BY DESC, & WORD BY REF, & STRING BY DESC, & ANY BY REF, & basic$quadword BY REF), & sys$dismou & (STRING BY DESC, & LONG BY VALUE), & sys$mount & (ANY BY REF), & sys$trnlnm & (LONG BY REF, & STRING BY DESC, & STRING BY DESC, & BYTE BY REF, & ANY BY REF) DECLARE LONG CONSTANT false = 0, & process = 0, & system = 1, & true = -1 DECLARE WORD CONSTANT device_name_length = 64 RECORD item_list VARIANT CASE WORD buflen WORD itmcod LONG bufadr LONG lenadr CASE LONG trmntr END VARIANT END RECORD RECORD var_common STRING device_name_fixed = device_name_length STRING volume_label_fixed = 12 END RECORD DECLARE LONG cond_value, & device_offline, & device_writable, & dismount_status, & mount_status, & no_more_devices, & remount_status, & var_common c