!
! The verb definitions for the DIX image
	module dix_cld
	define verb dix
!
! The syntax changes
!
	qualifier help          , syntax=dix_help
	qualifier interactive   , syntax=dix_interactive
	qualifier file          , syntax=dix_file
	qualifier info          , syntax=dix_info
	qualifier demo          , syntax=dix_demo
	qualifier screen,default  !, syntax=dix_screen
!
! SYntax screen :  Screen mode
!
!	define syntax dix_screen
	routine dix_mode_screen
!
	PARAMETER P1	,PROMPT="File",VALUE(required,type=$infilE,list)
	parameter p2	value(list) !optional search items
	parameter p3	value(list) !optional search items
	parameter p4	value(list) !optional search items
	parameter p5	value(list) !optional search items
	parameter p6	value(list) !optional search items
	parameter p7	value(list) !optional search items
	parameter p8	value(list) !optional search items
	qualifier	multi_file
	qualifier 	startup,default,value(type=$infile,default=dix_ini)
	qualifier 	debug,value(list,type=debug_types)
	qualifier 	system_library,default,value(type=$infile,default=dix_des)
	qualifier 	user_library,default,value(type=$infile,default=dix_des_user)
	qualifier	format,value(type=format_types)
	qualifier	keyboard,value(type=keyboard_types)
!
! Record selection qual 
! either eq,ge,gt,le,lt and key
! or record
!
	QUALIFIER KEY	,VALUE(default=0,type=$number),placement=positional
	QUALIFIER EQ	,value(required),placement=positional
	QUALIFIER GE	,value(required),placement=positional
	QUALIFIER GT	,value(required),placement=positional
	QUALIFIER LE	,value(required),placement=positional
	QUALIFIER LT	,value(required),placement=positional
	QUALIFIER RECord,value(type=$number),placement=positional
	QUALIFIER MARK   ,placement=positional
	QUALIFIER RFA   ,placement=positional,value(type=$number,list)
	qualifier locking,value(type=locking_types,list)
!
	qualifier raw   
!
	qualifier byte  
	qualifier word  
	qualifier longword
	qualifier unsigned
!
! Qualifier for interpreted dump
!
	qualifier description,default,placement=positional,
               VALUE(type=$infile,list)
	qualifier all,placement=positional
	qualifier compres,placement=positional
	qualifier tag,value,placement=positional
!
	qualifier modify,placement=positional
	qualifier blocked,placement=positional,value(default=1,type=$number)
	qualifier number ,default,value(type=number_type)
	qualifier hex
	qualifier dfield,default
	qualifier decimal
	qualifier binary
	qualifier octal
	qualifier all
	qualifier define,value(list)
	qualifier use_mouse,default
!
! record search items
!
	qualifier match,value(type=match_type),placement=positional
	qualifier wildcard,value(type=wildcard_type),placement=positional
	qualifier logic,value(type=logic_type),placement=positional
	qualifier not,placement=positional
	qualifier next_record,placement=positional
	qualifier case_sensitive,placement=positional
	qualifier field,value,placement=positional
	qualifier type,value(required),placement=positional
	qualifier window,value(list,type=window_type),placement=positional
	qualifier show,placement=positional
	qualifier fast,value(type=$number,default=1024)
	qualifier location,value(type=search_location_type),placement=positional
	qualifier statistics
!
	disallow (hex and decimal)
	disallow (byte and word and longword)
        disallow (not raw and (byte or word or longword))
!
!
! Syntax file : File mode
!
	define syntax dix_file
!
! Output to file mode
!
	routine dix_mode_file
	PARAMETER P1	PROMPT="File",VALUE(required,type=$infilE,list)
	PARAMETER p2    Value(list) !optional search items
	parameter p3	value(list) !optional search items
	parameter p4	value(list) !optional search items
	parameter p5	value(list) !optional search items
	parameter p6	value(list) !optional search items
	parameter p7	value(list) !optional search items
	parameter p8	value(list) !optional search items
	qualifier	multi_file
	qualifier       startup,default,value(type=$infile,default=dix_ini)
	qualifier 	debug,value(list,type=debug_types)
	qualifier 	system_library,default,value(type=$infile,default=dix_des)
	qualifier 	user_library,default,value(type=$infile,default=dix_des_user)
	qualifier	format,value(type=format_types)
	qualifier	keyboard,value(type=keyboard_types)
!
! Record selection qual 
! either eq,ge,gt,le,lt and key
! or record
!
	QUALIFIER KEY	,VALUE(default=0,type=$number),placement=positional
	QUALIFIER EQ	,value(required),placement=positional
	QUALIFIER GE	,value(required),placement=positional
	QUALIFIER GT	,value(required),placement=positional
	QUALIFIER LE	,value(required),placement=positional
	QUALIFIER LT	,value(required),placement=positional
	QUALIFIER RECord,value(type=$number),placement=positional
	QUALIFIER MARK  ,placement=positional
	QUALIFIER RFA   ,placement=positional,value(type=$number,list)
	qualifier locking,value(type=locking_types,list)

	qualifier help
!
	QUALIFIER COUNT ,VALUE(TYPE=$NUMBER,required)
	QUALIFIER output,default,VALUE(default=sys$output,type=$outfile)
	qualifier wide
	qualifier width,value(type=$number,default=132)
	qualifier select,value(list) 	!display selected fields
	qualifier symbol,value(default=dix_symbol_)
	qualifier csv,value(type=csv_values,list)
	qualifier define,value(list)
!
	qualifier match,value(type=match_type),placement=positional
	qualifier wildcard,value(type=wildcard_type),placement=positional
	qualifier logic,value(type=logic_type),placement=positional
	qualifier not,placement=positional
	qualifier next_record,placement=positional
	qualifier case_sensitive,placement=positional
	qualifier field,value,placement=positional
	qualifier type,value(required),placement=positional
	qualifier window,value(list,type=window_type),placement=positional
	qualifier show,placement=positional
	qualifier fast,value(type=$number,default=1024)
	qualifier location,value(type=search_location_type),placement=positional
	qualifier statistics
!
! Raw or interpreted dump
!
	qualifier raw
!
! qualifiers in raw dump
!
	qualifier byte
	qualifier word
	qualifier longword
	qualifier unsigned
!
! Qualifier for interpreted dump
!
	qualifier description,default,placement=positional,
               VALUE(type=$infile,list)
	qualifier all,placement=positional
	qualifier compres,placement=positional
	qualifier tag,value,placement=positional
!
	qualifier wide
	qualifier symbol,value(default=dix_symbol_)
!
	qualifier modify,placement=positional
	qualifier blocked,placement=positional,value(default=1,type=$number)
	qualifier number ,default,value(type=number_type)
	qualifier hex
	qualifier decimal
	qualifier binary
	qualifier octal
	qualifier dfield,default
	qualifier display,value(type=display_type,list)
	disallow (hex and decimal)
	disallow (byte and word and longword)
        disallow (not raw and (byte or word or longword))
!
	define type match_type
	keyword locate,default
	keyword match
        keyword lt
        keyword le
        keyword eq
        keyword ne
        keyword ge
        keyword gt
	keyword exists
	keyword valid
	keyword range
	keyword never
	keyword always
!
	define type logic_type
	keyword or,default
	keyword and
!
	define type display_type
	keyword data,default,negatable
	keyword vfc,negatable
	keyword all,negatable
	keyword recnr,negatable
	keyword recsiz,negatable
	keyword rfa,negatable
!
! Syntax help : Help mode only
!
	define syntax dix_help
	routine dix_help_rout
	parameter p1,value(type=$rest_of_line)
	qualifier       startup,default,value(type=$infile,default=dix_ini)
	qualifier 	debug,value(list,type=debug_types)
	qualifier 	system_library,default,value(type=$infile,default=dix_des)
	qualifier 	user_library,default,value(type=$infile,default=dix_des_user)
	qualifier wide
	qualifier help,default
	qualifier use_mouse,default
	qualifier	keyboard,value(type=keyboard_types)

	define type number_type
	keyword decimal
	keyword hex

	define type window_type
	keyword position,value(required)
	keyword size,value(required)
!
! Syntax interactive : Interactive mode
!
	define syntax dix_interactive
	routine dix_mode_interactive
	PARAMETER P1	prompt="File",VALUE(type=$infilE,list)
	parameter p2	value(list) !optional search items
	parameter p3	value(list) !optional search items
	parameter p4	value(list) !optional search items
	parameter p5	value(list) !optional search items
	parameter p6	value(list) !optional search items
	parameter p7	value(list) !optional search items
	parameter p8	value(list) !optional search items
	qualifier       startup,default,value(type=$infile,default=dix_ini)
	qualifier 	debug,value(list,type=debug_types)
	qualifier 	system_library,default,value(type=$infile,default=dix_des)
	qualifier 	user_library,default,value(type=$infile,default=dix_des_user)
	qualifier	multi_file
	qualifier 	help
	qualifier 	interactive,default
	qualifier       command,value(list)
	QUALIFIER output,default,VALUE(default=sys$output,type=$outfile)
	qualifier	format,value(type=format_types)
	qualifier	keyboard,value(type=keyboard_types)
!
! Record selection qual 
! either eq,ge,gt,le,lt and key
! or record
!
	QUALIFIER KEY	,VALUE(default=0,type=$number),placement=positional
	QUALIFIER EQ	,value(required),placement=positional
	QUALIFIER GE	,value(required),placement=positional
	QUALIFIER GT	,value(required),placement=positional
	QUALIFIER LE	,value(required),placement=positional
	QUALIFIER LT	,value(required),placement=positional
	QUALIFIER RECord,value(type=$number),placement=positional
	QUALIFIER MARK  ,placement=positional
	QUALIFIER RFA   ,placement=positional,value(type=$number,list)
	qualifier locking,value(type=locking_types,list)
!
	qualifier define,value(list)
	qualifier script,value(type=$infile)
	qualifier strict,value(type=strict_type,list)
!
! Raw or interpreted dump
!
	qualifier raw
	qualifier use_mouse,default
!
! qualifiers in raw dump
!
	qualifier byte
	qualifier word
	qualifier longword
	qualifier unsigned
!
! Qualifier for interpreted dump
!
	qualifier description,default,placement=positional,
               VALUE(type=$infile,list)
	qualifier all,placement=positional
	qualifier compres,placement=positional
	qualifier tag,value,placement=positional
!
	qualifier modify,placement=positional
	qualifier blocked,placement=positional,value(default=1,type=$number)
	qualifier number ,default,value(type=number_type)
	qualifier hex
	qualifier decimal
	qualifier binary
	qualifier octal
	qualifier dfield,default
!
! Record sel item
!
	qualifier match,value(type=match_type),placement=positional
	qualifier wildcard,value(type=wildcard_type),placement=positional
	qualifier logic,value(type=logic_type),placement=positional
	qualifier not,placement=positional
	qualifier next_record,placement=positional
	qualifier case_sensitive,placement=positional
	qualifier field,value,placement=positional
	qualifier type,value(required),placement=positional
	qualifier window,value(list,type=window_type),placement=positional
	qualifier show,placement=positional
	qualifier fast,value(type=$number,default=1024)
	qualifier location,value(type=search_location_type),placement=positional
	qualifier statistics
!
	disallow (hex and decimal)
	disallow (byte and word and longword)
        disallow (not raw and (byte or word or longword))
	disallow (script and command)
!
! Syntax info : Info mode
!
	define syntax dix_info
	routine dix_mode_info
	PARAMETER P1	PROMPT="File",VALUE(required,type=$infilE,list)
	qualifier       startup,default,value(type=$infile,default=dix_ini)
	qualifier 	debug,value(list,type=debug_types)
	qualifier 	system_library,default,value(type=$infile,default=dix_des)
	qualifier 	user_library,default,value(type=$infile,default=dix_des_user)
	qualifier	multi_file
	qualifier       description,default,placement=positional,VALUE(type=$infile,list)
	qualifier	all,placement=positional
	qualifier       modify,placement=positional
	qualifier       blocked,placement=positional,value(default=1,type=$number)
	qualifier	tag,value,placement=positional
	qualifier	keyboard,value(type=keyboard_types)
!
	QUALIFIER output,default,VALUE(default=sys$output,type=$outfile)
	qualifier wide
	qualifier width,value(type=$number,default=132)
	qualifier unsigned
!
	 define type strict_type
	  keyword typing
	  keyword declaration
	  keyword local

        define type debug_types
            keyword all,negatable
            keyword fp_conversions,negatable
            keyword descriptions,negatable
            keyword keys,negatable
            keyword symbols,negatable
            keyword command_file,negatable
            keyword expand,negatable
            keyword file,negatable
	    keyword find,negatable
	    keyword vm,negatable
	    keyword fastio,negatable

	define type locking_types
	    keyword optimistic
	    keyword rrl

	define type csv_values
	  keyword header
	  keyword all_quotes
	  keyword separator,value(type=csv_sep_type)
	  keyword quote,negatable,value(type=csv_quo_type)

	define type csv_sep_type
	  keyword space
	  keyword comma
	  keyword tab
	  keyword colon
	  keyword semicolon
	  keyword character,value(type=$number)

	define type csv_quo_type
	  keyword quote
	  keyword doublequote
	  keyword character,value(type=$number)

	define type format_types
	  keyword passall
	  keyword dot
	  keyword dump
	  keyword hex

	define syntax dix_demo
	routine dix_mode_demo
!
! The demo function
!
	qualifier demo
	qualifier header,default
	qualifier file,value
	parameter p1,value(type=$infile)
	parameter p2,value(default=main)
	qualifier uppercase,default
	qualifier screenname,default
	qualifier       startup,default,value(type=$infile,default=dix_ini)
	qualifier 	debug,value(list,type=debug_types)
	qualifier 	system_library,default,value(type=$infile,default=dix_des)
	qualifier 	user_library,default,value(type=$infile,default=dix_des_user)
	qualifier use_mouse,default
	qualifier	keyboard,value(type=keyboard_types)

	define type wildcard_type
	keyword none
	keyword standard,default
	keyword extended

	define type keyboard_types
	keyword normal, default
	keyword pc
	keyword laptop

	define type search_location_type
	keyword data,default
	keyword vfc	
	keyword both
	keyword recl
