%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
