-- EDM module extracted from ITU-T X.692 (11/2008)
LegacyProtocol-EDM-Module 
	{joint-iso-itu-t(2) asn1(1) ecn(4) examples(5) edm-module4(13)}
ENCODING-DEFINITIONS ::=
BEGIN
EXPORTS LegacyProtocolEncodings;
IMPORTS #B, #LegacyProtocolMessages, #Message1
        FROM	LegacyProtocol-ASN1-Module
        { joint-iso-itu-t(2) asn1(1) ecn(4) examples(5) asn1-module4(11) };
LegacyProtocolEncodings #ENCODINGS ::= {
	legacyProtocolMessagesEncoding 	|
	message1Encoding }
legacyProtocolMessagesEncoding #LegacyProtocolMessages ::= {
	ENCODE STRUCTURE {
        	message-id {
        	ENCODING {
        		ENCODING-SPACE
        		SIZE 8}},
		messages {
        		ENCODE STRUCTURE {
        			STRUCTURED WITH {
				ALTERNATIVE
					DETERMINED BY field-to-be-used
					USING message-id}}
        	WITH PER-BASIC-UNALIGNED}}
	WITH PER-BASIC-UNALIGNED}
message1Encoding #Message1 ::= {
	ENCODE STRUCTURE {
		b	b-encoding
			OPTIONAL-ENCODING {
				PRESENCE
				DETERMINED BY field-to-be-used
				USING b-flag},
        	c	octet-aligned-seq-of-with-ext-determinant{< c-len >},
		d	octet-aligned-seq-of-until-end-of-container 
        		OPTIONAL-ENCODING USE-SET}
		WITH PER-BASIC-UNALIGNED}
b-encoding #B ::= {
	ENCODE STRUCTURE {
        	-- Components
        	b3 {
        		ENCODING {
        		ALIGNED TO NEXT nibble 
        		ENCODING-SPACE
        			SIZE 2	
        			MULTIPLE OF bit }}
        	-- Structure
        	STRUCTURED WITH {
        		ALIGNED TO NEXT octet 
        	ENCODING-SPACE 
        		SIZE self-delimiting-values
        	MULTIPLE OF bit }}
	-- The rest 
	WITH PER-BASIC-UNALIGNED}
octet-aligned-seq-of-with-ext-determinant{< REFERENCE : len >} #REPETITION ::= {
	REPETITION-ENCODING {
		ALIGNED TO NEXT octet
		REPETITION-SPACE
		SIZE variable-with-determinant
		MULTIPLE OF repetitions
		DETERMINED BY field-to-be-used
		USING len}}
octet-aligned-seq-of-until-end-of-container #REPETITION ::= {
	REPETITION-ENCODING {
		ALIGNED TO NEXT octet
		REPETITION-SPACE
		SIZE variable-with-determinant
		DETERMINED BY container
		USING OUTER}}
END